Add more key bindings

This commit is contained in:
Joscha 2023-05-07 18:16:27 +02:00
parent 98186de2dd
commit 8b599e2436

View file

@ -116,37 +116,22 @@ static void toggleFullScreen() {
static void handleKeyDown(SDL_Event* event) { static void handleKeyDown(SDL_Event* event) {
switch (event->key.keysym.sym) { switch (event->key.keysym.sym) {
case SDLK_LEFT: { case SDLK_j: world->previousRoom(); break;
if (event->key.keysym.mod & KMOD_META) { case SDLK_r: world->resetPlayer(); break;
world->previousRoom(); case SDLK_l: world->nextRoom(); break;
} case SDLK_a: case SDLK_LEFT: world->player().move(Player::LEFT); break;
break; case SDLK_s: case SDLK_DOWN: world->player().move(Player::BACKWARD); break;
} case SDLK_d: case SDLK_RIGHT: world->player().move(Player::RIGHT); break;
case SDLK_DOWN: { case SDLK_w: case SDLK_UP: world->player().move(Player::FORWARD); break;
if (event->key.keysym.mod & KMOD_META) {
world->resetPlayer();
}
break;
}
case SDLK_RIGHT: {
if (event->key.keysym.mod & KMOD_META) {
world->nextRoom();
}
break;
}
case SDLK_a: world->player().move(Player::LEFT); break;
case SDLK_s: world->player().move(Player::BACKWARD); break;
case SDLK_d: world->player().move(Player::RIGHT); break;
case SDLK_w: world->player().move(Player::FORWARD); break;
} }
} }
static void handleKeyUp(SDL_Event* event) { static void handleKeyUp(SDL_Event* event) {
switch (event->key.keysym.sym) { switch (event->key.keysym.sym) {
case SDLK_a: world->player().stop(Player::LEFT); break; case SDLK_a: case SDLK_LEFT: world->player().stop(Player::LEFT); break;
case SDLK_s: world->player().stop(Player::BACKWARD); break; case SDLK_s: case SDLK_DOWN: world->player().stop(Player::BACKWARD); break;
case SDLK_d: world->player().stop(Player::RIGHT); break; case SDLK_d: case SDLK_RIGHT: world->player().stop(Player::RIGHT); break;
case SDLK_w: world->player().stop(Player::FORWARD); break; case SDLK_w: case SDLK_UP: world->player().stop(Player::FORWARD); break;
case SDLK_SPACE: world->togglePaused(); break; case SDLK_SPACE: world->togglePaused(); break;
case SDLK_q: if (!(event->key.keysym.mod & KMOD_META)) break; case SDLK_q: if (!(event->key.keysym.mod & KMOD_META)) break;
case SDLK_ESCAPE: run = false; break; case SDLK_ESCAPE: run = false; break;