Ir al contenido
Descargar

Teclado y mando con acciones

Quieres que el juego funcione con teclado y con mando, y que cambiar una tecla no exija tocar el código.

Una acción es un nombre, como pular (saltar), unido a una o más teclas y botones. En el código, preguntas por la acción:

void Player::onUpdate() {
hspeed = axis("esquerda", "direita") * 2.0f;
if (pressed("pular")) vspeed = -4.0f;
}
  • held("pular") es verdadero mientras la acción está mantenida.
  • pressed("pular") vale solo en el paso en que se pulsó: una vez por toque.
  • released("pular") vale solo en el paso en que se soltó.
  • axis("esquerda", "direita") devuelve un número de -1 a 1: -1 con la primera acción, 1 con la segunda, 0 con ninguna o con las dos. En el stick analógico del mando, devuelve valores intermedios.

Abre Projeto › Configurações do projeto… (Proyecto › Configuración del proyecto) y ve a Ações de entrada (acciones de entrada). Ahí creas acciones, cambias los nombres y eliges las teclas y los botones de cada una. Mira Configuración del proyecto.

Un proyecto nuevo (plantilla Vazio, vacío) ya viene con seis acciones:

Acción Teclado Mando
esquerda (izquierda) ←, A cruceta ←, stick ←
direita (derecha) →, D cruceta →, stick →
cima (arriba) ↑, W cruceta ↑, stick ↑
baixo (abajo) ↓, S cruceta ↓, stick ↓
pular (saltar) Espacio A
acao (acción) X, Enter X

La plantilla Primeiro jogo (primer juego) trae las cuatro direcciones y además atirar (disparar), confirmar y sair (salir).

  • Vale el primer mando conectado. Se puede conectar y desconectar con el juego corriendo.
  • Los botones son Pad:A, Pad:B, Pad:X, Pad:Y, Pad:Start, Pad:Back, Pad:LB y Pad:RB, y la cruceta es Pad:Up, Pad:Down, Pad:Left y Pad:Right.
  • El stick izquierdo es Pad:LeftX-, Pad:LeftX+, Pad:LeftY- y Pad:LeftY+. Tiene una zona muerta de 0,25: los toques leves no cuentan.

Una acción que no existe aparece una vez como error en la Saída (Salida). Revisa que el nombre en el código sea igual al de la configuración del proyecto, letra por letra.

Las funciones con tecla, como held(Key::Space), siguen funcionando. Úsalas para pruebas rápidas; para el juego, prefiere las acciones.