RPG Tux se cambia de ropa xD

RPG Tux se cambia de ropa xD

Notapor Nathaniel » Lun Jun 15, 2009 4:15 pm

Metiendome en la programación de videojuegos RPG con Pygame he elaborado mi primer script, se llama RPG Tux Transformer. Se basa en un pequeño escenario en 3D donde nuestro querido Tux al pasar por la estrella se cambiará de ropa xD

A mejorar:
- Tan sólo tengo especificada una coordenada para las estrellas cuando el Tux pise, tengo que mejorar esto haciendolo un rectangulo, es un poco difícil de explicar.
- Música!
- Más imágenes de Tux
- Movimiento de Tux más elegante
- Efectos de cámara
- etc.

Imagen

http://www.megaupload.com/?d=6OHBI1E0
http://www.filefactory.com/file/af72bbb ... mer_tar_gz

Código: Seleccionar todo
#Importamos los modulos necesarios
import pygame
from pygame.locals import *
from random import randrange
pygame.init()


class Personaje(pygame.sprite.Sprite):
   def __init__(self,Screen):
      pygame.sprite.Sprite.__init__(self)
      self.Screen = Screen
      self.image = pygame.image.load('ima/Tux.png').convert_alpha()
      self.rect = self.image.get_rect()
      self.rect.x = 300
      self.rect.y = 100
   def Update(self):
      self.rect.clamp_ip((0,0,700,275)) #Delimitamos la zona por la que se podra mover el personaje x=700,y=275
      key = pygame.key.get_pressed()
      if key[K_UP]:
         self.rect.y -= 6
      elif key[K_DOWN]:
         self.rect.y += 6
      elif key[K_RIGHT]:
         self.rect.x += 6
      elif key[K_LEFT]:
         self.rect.x -= 6
      
      if self.rect.x == 150 and self.rect.y == 160:
         self.Metamorfosis()
         
      elif self.rect.x == 498 and self.rect.y == 160:
         self.Metamorfosis()
         
      self.Screen.blit(self.image,(self.rect.x,self.rect.y))
      
   def Metamorfosis(self):
      Tux_array = []
      Number_of_Tux = 8
      for Numero in range(1,Number_of_Tux):
         Tux_array.append(pygame.image.load("ima/Tux/%d.png" %Numero).convert_alpha())
         
      Tux_Number = randrange(Number_of_Tux)
      print Tux_Number
      self.image = Tux_array[Tux_Number-1]
      self.Update()
      
      
         

#La clase para la pantalla principal, la cual no se movera en la version 1.
def Escenario(Screen):
   Numero_Bloques = Cargar_imagen_Bloques()
   Archivo = open("Arrays.txt","r")
   Contenido = Archivo.readlines()
   Archivo.close()
   
   #Determinamos el numero de Filas y el numero de Columnas a traves del Array.txt
   Filas = len(Contenido)
   Columnas = len(Contenido[0]) -1 # -1 por el salto de linea.
   
   #Este ciclo de fors es para imprimir en pantalla todas las columnas y lineas, no os preocupeis
   #hasta a mi me cuesta un poco de entender xD
   for Fila in range(Filas):
      for Columna in range(Columnas):
         indice = int(Contenido[Fila][Columna])
         x = Columna * 50
         y = Fila * 31
         Screen.blit(Numero_Bloques[indice], (x,y))

def Cargar_imagen_Bloques():
   Numero_Bloques = []
   
   #Este ciclo for carga las tres imagenes distintas y las almacena en una array.
   for Bloques in range(5):
      Numero_Bloques.append(pygame.image.load("ima/%d.png" %Bloques).convert_alpha())
      
   return Numero_Bloques
   
            
def main():
   #Definimos la pantalla y iniciamos el ciclo infinito para empezar el juego
   Screen = pygame.display.set_mode((700,340))
   pygame.display.set_caption("Mi primer RPG")
   
   Sky = pygame.image.load("ima/Sky.jpg")
   Personaje1 = Personaje(Screen)
   
   Running = True
   while Running:
      for event in pygame.event.get():
         if event.type == pygame.QUIT:
            Running = False
      Screen.blit(Sky,(0,0))
      Escenario(Screen)
      Personaje1.Update()
      pygame.time.wait(100)
      pygame.display.flip()
      

if __name__ == '__main__':
   main()
Nathaniel
 
Mensajes: 8
Registrado: Sab Feb 14, 2009 8:00 pm

Volver a Videojuegos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron