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.
 
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()

