11-09-2018, 07:10 PM
Buenas!
He examinado tu ejemplo, te adjunto un par de cambios:
He examinado tu ejemplo, te adjunto un par de cambios:
- No es correcto crear el objeto de fondos dentro del de jugador, como si fuera subordinado. Son dos entidades independientes y deben crearse por separado.
- En el bucle principal añado una llamada a jugador.update()
Code:
#personaje----------------------------------------------
class Jugador(object):
def __init__(self):
#iniciar variables y cargar recursos
self.x = 60
self.y = 186
self.graficos = Spriteset.fromfile("hero")
motor.sprites[0].setup(self.graficos)
motor.sprites[0].set_position(self.x,self.y)
self.animacionPack = SequencePack.fromfile("hero.sqx")
self.animacionParado = self.animacionPack.sequences["seq_idle"]
motor.animations[0].set_sprite_animation(0,self.animacionParado,0)
def update(self):
#mover objeto
if ventana.get_input(Input.RIGHT):
motor.sprites[0].set_position(self.x,self.y)
self.x += 2
#cambiar de lado imagen
motor.sprites[0].set_flags(0)
elif ventana.get_input(Input.LEFT):
motor.sprites[0].set_position(self.x,self.y)
self.x -= 2
motor.sprites[0].set_flags(Flags.FLIPX)
#destruir sprite
if ventana.get_input(Input.BUTTON1):
motor.sprites[0].disable()
# inicia motor
motor = Engine.create(480, 360, 2,16,16)
# crea objetos de juego
jugador = Jugador()
mifondo = Fondos()
# crea ventana y bucle principal
ventana = Window.create()
while ventana.process():
jugador.update()
ventana.draw_frame()