Mover com o teclado
Você quer que um objeto ande enquanto o jogador segura as setas.
#include <brasa/brasa.hpp>using namespace brasa;
class Player : public Entity {public: void onUpdate() override { const float speed = 2.0f; // pixels por passo 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);Como funciona
Seção intitulada “Como funciona”onUpdateroda 60 vezes por segundo. A cada vez, o código confere o teclado.held(Key::Left)é verdadeiro enquanto a tecla está segurada.xcresce para a direita eycresce para baixo. Por isso “para cima” éy -= speed.||quer dizer ou: a seta e a letra fazem a mesma coisa.
Variações
Seção intitulada “Variações”Andar na diagonal com a mesma velocidade. Somando as duas direções, a diagonal fica mais rápida. Guarde a direção em dx/dy e corrija com 0,7071 (é assim no tutorial):
if (dx != 0.0f && dy != 0.0f) { dx *= 0.7071f; dy *= 0.7071f; }Não atravessar paredes. Marque o objeto da parede como Sólido no Inspetor e ande com moveAndStop, que para quando encosta num sólido:
float dx = 0, dy = 0;if (held(Key::Left)) dx -= 2;if (held(Key::Right)) dx += 2;moveAndStop(dx, dy);Uma ação por toque. Para pular ou abrir um menu, use pressed, que vale só no passo em que a tecla foi apertada:
if (pressed(Key::Space)) vspeed = -6; // puloVeja também
Seção intitulada “Veja também”- Entrada: todas as teclas e o mouse.
- Teclado e controle com ações: o mesmo código para o teclado e para o controle.
- Movimento: velocidade, direção, gravidade e
moveAndStop. - 2. A nave, no tutorial.
