Buenas Noches, estuve viendo el foro y no pude encontrar lo que busco, asi que les pregunto por aqui.
La cosa es que tengo un actor, que depende a una determinada tecla que toque, cambiara su sprite. La cosa es que no quiero que el actor se mueva al presionar la tecla, sino que, al tocar una tecla, este actue en consecuencia.
Aqui les dejo parte del codigo:
class Sprites2(pilasengine.actores.Actor):
def iniciar(self):
animacion = pilas.imagenes.cargar_animacion("Characters/FullBlue.png", 1, 2)
animacion.definir_animacion("duendeazul", [0], 2)
animacion.definir_animacion("rangerazul", [1], 2)
self.imagen = animacion
def actualizar(self):
# if self.pilas.simbolos.s:
global character
character_p2 = 2
self.imagen.cargar_animacion("rangerazul")
self.imagen.avanzar()
# if self.pilas.simbolos.w:
global character
character_p2 = 1
self.imagen.cargar_animacion("duendeazul")
self.imagen.avanzar()
Las partes con “#” son las que, al presionarlas, no reacciona de acuerdo al codigo que le sigue, que hago? Gracias de antemano .
buenas.
PodrĂas ser un poco mas amplio en la descripciĂłn de tu problema, lamentablemente no entiendo muy bien lo que queres hacer.
Saludos.
A lo que me refiero es que me gustarĂa que, al presionar una tecla en particular (en ese caso w y s) el personaje haga las acciones que le he definido.
He estado viendo y usan “self.pilas.simbolos.x” para hacer lo que quiero, pero no está reaccionando. No sé si me falta algo o si lo estoy escribiendo mal . Gracias de antemano.
Hola @Mateo_Bc, te paso un ejemplo sencillo de cĂłmo se podrĂa implementar lo que mencionas.
Para capturar otras teclas deberĂas usar una de las señales que te brinda el sistema de eventos de pilas (Eventos - pilas-engine). Hay una señal que pilas ejecutar cuando se pulsa una tecla y otra señal cuando se suelta una tecla.
Te muestro un ejemplo porque creo que va a quedar más claro asĂ. Imaginá que quiero mover mi personaje usando las teclas “a” y “d”, puedo hacer que ese actor tenga dos funciones “cuando_pulsa_tecla” y “cuando_suelta_tecla” para identificar los eventos del teclado fácilmente, y a su vez, puedo tener una variable para almacenar True o False identificando si la tecla se pulsa o no:
# coding: utf-8
import pilasengine
pilas = pilasengine.iniciar()
class MiActor(pilasengine.actores.Actor):
def iniciar(self):
self.pulsa_a = False
self.pulsa_d = False
self.pilas.eventos.pulsa_tecla.conectar(self.cuando_pulsa_tecla)
self.pilas.eventos.suelta_tecla.conectar(self.cuando_suelta_tecla)
def actualizar(self):
if self.pulsa_a:
self.x -= 5
if self.pulsa_d:
self.x += 5
def cuando_pulsa_tecla(self, evento):
if evento.codigo == "a":
self.pulsa_a = True
if evento.codigo == "d":
self.pulsa_d = True
def cuando_suelta_tecla(self, evento):
if evento.codigo == "a":
self.pulsa_a = False
if evento.codigo == "d":
self.pulsa_d = False
pilas.actores.vincular(MiActor)
pilas.actores.MiActor()
pilas.ejecutar()
Ojalá te sirva, consultanos cualquier cosa!
1 Like
Muchas gracias! Eso era lo que estaba buscando!
Estoy empezando un proyecto casual, que se tratará de varios jugadores que pelean entre sà para ganar en varios modos. Cualquier duda sobre cómo proceder aviso!