
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.