Mover con el teclado
Quieres que un objeto se mueva mientras el jugador mantiene las flechas.
#include <brasa/brasa.hpp>using namespace brasa;
class Player : public Entity {public: void onUpdate() override { const float speed = 2.0f; // píxeles por paso if (held(Key::Left) || held(Key::A)) x -= speed; if (held(Key::Right) || held(Key::D)) x += speed; if (held(Key::Up) || held(Key::W)) y -= speed; if (held(Key::Down) || held(Key::S)) y += speed; }};BRASA_ENTITY(Player);Cómo funciona
Sección titulada «Cómo funciona»onUpdatese ejecuta 60 veces por segundo. Cada vez, el código revisa el teclado.held(Key::Left)es verdadero mientras la tecla está mantenida.xcrece hacia la derecha eycrece hacia abajo. Por eso “hacia arriba” esy -= speed.||quiere decir o: la flecha y la letra hacen lo mismo.
Variaciones
Sección titulada «Variaciones»Moverse en diagonal a la misma velocidad. Sumando las dos direcciones, la diagonal queda más rápida. Guarda la dirección en dx/dy y corrígela con 0,7071 (así es en el tutorial):
if (dx != 0.0f && dy != 0.0f) { dx *= 0.7071f; dy *= 0.7071f; }No atravesar paredes. Marca el objeto de la pared como Sólido en el Inspector y muévete con moveAndStop, que se detiene cuando toca un sólido:
float dx = 0, dy = 0;if (held(Key::Left)) dx -= 2;if (held(Key::Right)) dx += 2;moveAndStop(dx, dy);Una acción por toque. Para saltar o abrir un menú, usa pressed, que vale solo en el paso en que se pulsó la tecla:
if (pressed(Key::Space)) vspeed = -6; // saltoMira también
Sección titulada «Mira también»- Entrada: todas las teclas y el mouse.
- Teclado y mando con acciones: el mismo código para el teclado y para el mando.
- Movimiento: velocidad, dirección, gravedad y
moveAndStop. - 2. La nave, en el tutorial.
