Cambiar el boton de disparo

Quiero cambiar el boton de disparo pero no se como :c por ej: el personaje 1 se mueve con a, s, d y w, y quiero que dispare con la “J” y de paso quiero saber si se puede agregar nuevos botones al juego. por ejemplo que con la “J” salte, con la “K” haga otra cosa, etc.

Hola @DanteTiti

Supongo que estás utilizando la Habilidad ‘Disparar’ que ya viene incluida en Pilas: https://github.com/hugoruscitti/pilas/blob/master/pilas/habilidades.py#L560

Si revisas el enlace, verás los parámetros que tiene la habilidad Disparar, el que te interesa es el parámetro ‘Control’

Cada que inicias Pilas Engine, automáticamente se crea una instancia de un control sencillo para la escena del juego, el cual está compuesto por ‘mover izquierda’, ‘mover derecha’, ‘mover arriba’, ‘mover abajo’, y ‘boton’(es la tecla espacio)

El código de control lo puedes ver acá: https://github.com/hugoruscitti/pilas/blob/master/pilas/control.py

Si no pasas cómo argumento para el parametro ‘control’ a la habilidad Disparar un objeto de la clase Control; la habilidad tomará cómo control al creado automaticamente por la escena actual de Pilas, para realizar su tarea de disparar, este control lo puedes encontrar en ‘pilas.escena_actual().control’

Para crear un nuevo control que te permita utilizar otra tecla para disparar tienes que hacer lo siguiente:

mapa_teclado = {pilas.simbolos.j:'boton'} # Un diccionario que contiene los botones para el control
control_personalizado = pilas.control.Control(pilas.escena_actual(), mapa_teclado)

Lo primero es crear un diccionario de Python con las teclas que quiero que tenga mi control.
Posteriormente crear un objeto control el cual usará el diccionario creado anteriormente.

Ahora puedes utilizar el control personalizado para la habilidad disparar, así:

mi_personaje.aprender(pilas.habilidades.Disparar, control=control_personalizado)

Tu personaje ahora disparará con la tecla ‘J’.

Para asignar acciones(métodos o funciones) a la pulsación de teclas te recomendio los eventos: https://github.com/hugoruscitti/pilas/blob/master/pilas/evento.py#L175 Si ves en enlace encontrarás mas eventos.

def correr(evento):
   if evento.tecla == 'j':
       print "correr"
       # otras instruciones

pilas.eventos.pulsa_tecla.conectar(correr)

Saludos !

1 Like

Muchas gracias por la ayuda :3 ahora voy a probar si puedo cambiar de boton xDD