 
Pero como bien se, para llegar hasta algo similar a eso uno tiene que recorrer un largo camino, el mio de hecho es aún más largo pues empiezo de 0, solo sabiendo programación.
Para empezar lo mejor es crearte un prototipo en 2D de lo que vas a hacer en 3D, para ello sigo la recomendación que hacéis de Python + PyGame, que permite un desarrollo rápido.
Bueno he conseguido hacer algunas cosillas:
http://www.mediafire.com/?sharekey=443477709d349618af924764f9977b1de04e75f6e8ebb871
- Código: Seleccionar todo
- #!/usr/bin/env python
 #Import Modules
 import random
 import string
 import sys
 import os, os.path
 import pygame
 from pygame import *
 from pygame.sprite import Sprite
 class Player(Sprite): # This class is YOU
 def __init__(self):
 Sprite.__init__(self)
 self.image11=pygame.image.load('player11.bmp').convert()
 self.image12=pygame.image.load('player12.bmp').convert()
 self.image31=pygame.image.load('player31.bmp').convert()
 self.image32=pygame.image.load('player32.bmp').convert()
 self.image51=pygame.image.load('player51.bmp').convert()
 self.image52=pygame.image.load('player52.bmp').convert()
 self.image71=pygame.image.load('player71.bmp').convert()
 self.image72=pygame.image.load('player72.bmp').convert()
 self.image=self.image11
 self.image.get_at((0,0))
 self.image.set_colorkey(-1, RLEACCEL)
 self.rect=self.image.get_rect()
 self.posx = 0
 self.posy = 0
 def move(self, dir): # Movement
 if dir == "left" and self.posx > 0:
 self.posx -= 5
 if self.image == self.image71:
 self.image = self.image72
 else:
 self.image = self.image71
 elif dir == "right" and self.posx <60> 0:
 self.posy -= 10
 if self.image == self.image11:
 self.image = self.image12
 else:
 self.image = self.image11
 elif dir == "down" and self.posy < 60:
 self.posy += 10
 if self.image == self.image51:
 self.image = self.image52
 else:
 self.image = self.image51
 
 self.image.get_at((0,0))
 self.image.set_colorkey(-1, RLEACCEL)
 
 def main():
 random.seed()
 pygame.init()
 # Prepare stage
 screen = pygame.display.set_mode((200, 200))
 pygame.display.set_caption('Ventana')
 screen = pygame.display.get_surface()
 background = pygame.image.load('mapa.JPG').convert()
 screen.blit(background,(0,0))
 player = Player() # Instance of Player
 screen.blit(player.image, (0,0))
 
 music = pygame.mixer.Sound('contradanza.mp3')
 music.play(-1, 0)
 
 running = True
 
 while running:
 pygame.time.delay(10)
 pygame.display.flip()
 screen.blit(background,(0,0))
 screen.blit(player.image, (player.posx, player.posy))
 teclas = pygame.key.get_pressed()
 for event in pygame.event.get():
 if event.type == pygame.QUIT:
 running = False
 elif event.type == KEYDOWN:
 if event.key == K_d:
 player.move('right')
 elif event.key == K_a:
 player.move('left')
 elif event.key == K_w:
 player.move('up')
 elif event.key == K_s:
 player.move('down')
 elif event.key == K_q:
 running == False
 if __name__ == '__main__': main()
Ahora bien tengo varias dudas:
1º Como puedo a partir de la imagen "Chara05.png", que adjunto en el archivo obtener resultados similares a los de "player11.bmp", "player12.bmp", etc...
2º Porque la música que adjunto "contradanza.mp3", no funciona mientras que la "magic.wav" si.
3º Como hago trasparencia a los "playerXX.bmp" que tienen fondo blanco.
4º Como puedo hacer que al mantener pulsado un botón de movimiento el personaje vaya en la dirección que le indica dicho botón, hasta que lo suelte.
Gracias por leeros este post, he intentar hecharme una mano
 .
 .
Un Saludo.



 , lo he puesto usando la función que mencionáis pero no funciona... de hecho se me bloquea.
 , lo he puesto usando la función que mencionáis pero no funciona... de hecho se me bloquea.


