Hola muchachos como estan?
Tengo un personaje tipo RPG, el movimiento lo hago con este codigo:
Dentro del codigo del personaje tengo esto:
self.pilas.eventos.pulsa_tecla.conectar(self.cuando_pulsa_una_tecla)
def cuando_pulsa_una_tecla(self, evento):
distanciaDePaso = 40
espj = self.espejado
if evento.codigo == self.pilas.simbolos.a and not self.isEnBatalla():
espj = True
self.caminarHacia(X=(self.x -distanciaDePaso), Y = self.y, inmediatamente = True)
if evento.codigo == self.pilas.simbolos.d and not self.isEnBatalla():
self.caminarHacia(X=(self.x +distanciaDePaso), Y = self.y, inmediatamente = True)
espj = False
if evento.codigo == self.pilas.simbolos.w and not self.isEnBatalla():
self.caminarHacia(X=self.x, Y = (self.y +distanciaDePaso), inmediatamente = True)
if evento.codigo == self.pilas.simbolos.s and not self.isEnBatalla():
self.caminarHacia(X=self.x, Y = (self.y -distanciaDePaso), inmediatamente = True)
self.hacer(Comportamiento.Ready, espj)`
En lo funcional:
Cuando se preciona una tecla, verifica cual es, y llama a la funcion “cambinarHacia”, que a su vez, pone a “self” bajo el comportamiento “Caminando”.
hasta ahora funciona perfecto.
Cuando pulsas una tecla camina perfectamente.¿Cual es el problema? se esta capturando el evento al pulsar una tecla, no funciona con mantenerla.
La cosa es asi. como capturo el evento “Mantener una tecla”
Vi un ejemplo en el manual: (El del Alien)
class Alien(pilasengine.actores.Actor):
def iniciar(self):
self.imagen = "alien.png"
def saludar(self):
self.decir("Hola mundo!!!, soy el nuevo actor alien")
def dar_vuelta(self):
self.rotacion = [360]
def actualizar(self):
if pilas.control.izquierda:
self.x -= 5
self.espejado = True
if pilas.control.derecha:
self.x += 5
self.espejado = False
Pero solo funciona con esos controles, y no con todas las teclas. COmo capturo las otras teclas como las letras?
Espero haber sido especifico en mi consulta! Muchas gracias de antemano! Saludos!