Ir al contenido
Descargar

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);
  • onUpdate se ejecuta 60 veces por segundo. Cada vez, el código revisa el teclado.
  • held(Key::Left) es verdadero mientras la tecla está mantenida.
  • x crece hacia la derecha e y crece hacia abajo. Por eso “hacia arriba” es y -= speed.
  • || quiere decir o: la flecha y la letra hacen lo mismo.

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; // salto