InputAction → enum class Input::Action
This commit is contained in:
@@ -8,29 +8,29 @@ namespace GlobalInputs {
|
||||
auto handle() -> bool {
|
||||
if (Screen::get() == nullptr || Input::get() == nullptr) { return false; }
|
||||
|
||||
if (Input::get()->checkInput(WINDOW_FULLSCREEN, Input::Repeat::OFF)) {
|
||||
if (Input::get()->checkInput(Input::Action::WINDOW_FULLSCREEN, Input::Repeat::OFF)) {
|
||||
Screen::get()->toggleVideoMode();
|
||||
return true;
|
||||
}
|
||||
if (Input::get()->checkInput(WINDOW_DEC_ZOOM, Input::Repeat::OFF)) {
|
||||
if (Input::get()->checkInput(Input::Action::WINDOW_DEC_ZOOM, Input::Repeat::OFF)) {
|
||||
Screen::get()->decWindowZoom();
|
||||
return true;
|
||||
}
|
||||
if (Input::get()->checkInput(WINDOW_INC_ZOOM, Input::Repeat::OFF)) {
|
||||
if (Input::get()->checkInput(Input::Action::WINDOW_INC_ZOOM, Input::Repeat::OFF)) {
|
||||
Screen::get()->incWindowZoom();
|
||||
return true;
|
||||
}
|
||||
if (Input::get()->checkInput(TOGGLE_SHADER, Input::Repeat::OFF)) {
|
||||
if (Input::get()->checkInput(Input::Action::TOGGLE_SHADER, Input::Repeat::OFF)) {
|
||||
Screen::get()->toggleShaderEnabled();
|
||||
return true;
|
||||
}
|
||||
// F5/F6 només actuen quan el post-procesado està actiu.
|
||||
if (Screen::isShaderEnabled()) {
|
||||
if (Input::get()->checkInput(TOGGLE_SHADER_TYPE, Input::Repeat::OFF)) {
|
||||
if (Input::get()->checkInput(Input::Action::TOGGLE_SHADER_TYPE, Input::Repeat::OFF)) {
|
||||
Screen::get()->toggleActiveShader();
|
||||
return true;
|
||||
}
|
||||
if (Input::get()->checkInput(NEXT_SHADER_PRESET, Input::Repeat::OFF)) {
|
||||
if (Input::get()->checkInput(Input::Action::NEXT_SHADER_PRESET, Input::Repeat::OFF)) {
|
||||
Screen::get()->nextPreset();
|
||||
return true;
|
||||
}
|
||||
|
||||
+17
-15
@@ -65,12 +65,12 @@ Input::Input(std::string file)
|
||||
KeyBindings kb;
|
||||
kb.scancode = 0;
|
||||
kb.active = false;
|
||||
key_bindings_.resize(NUMBER_OF_INPUTS, kb);
|
||||
key_bindings_.resize(static_cast<std::size_t>(Action::NUMBER_OF_INPUTS), kb);
|
||||
|
||||
GameControllerBindings gcb;
|
||||
gcb.button = SDL_GAMEPAD_BUTTON_INVALID;
|
||||
gcb.active = false;
|
||||
game_controller_bindings_.resize(NUMBER_OF_INPUTS, gcb);
|
||||
game_controller_bindings_.resize(static_cast<std::size_t>(Action::NUMBER_OF_INPUTS), gcb);
|
||||
}
|
||||
|
||||
// Destructor
|
||||
@@ -94,17 +94,17 @@ void Input::update() {
|
||||
}
|
||||
|
||||
// Asigna inputs a teclas
|
||||
void Input::bindKey(Uint8 input, SDL_Scancode code) {
|
||||
key_bindings_[input].scancode = code;
|
||||
void Input::bindKey(Action input, SDL_Scancode code) {
|
||||
key_bindings_[static_cast<std::size_t>(input)].scancode = code;
|
||||
}
|
||||
|
||||
// Asigna inputs a botones del mando
|
||||
void Input::bindGameControllerButton(Uint8 input, SDL_GamepadButton button) {
|
||||
game_controller_bindings_[input].button = button;
|
||||
void Input::bindGameControllerButton(Action input, SDL_GamepadButton button) {
|
||||
game_controller_bindings_[static_cast<std::size_t>(input)].button = button;
|
||||
}
|
||||
|
||||
// Comprueba si un input esta activo
|
||||
auto Input::checkInput(Uint8 input, Repeat repeat, Device device, int index) -> bool {
|
||||
auto Input::checkInput(Action input, Repeat repeat, Device device, int index) -> bool {
|
||||
if (!enabled_) {
|
||||
return false;
|
||||
}
|
||||
@@ -127,31 +127,33 @@ auto Input::checkInput(Uint8 input, Repeat repeat, Device device, int index) ->
|
||||
}
|
||||
|
||||
// Helper de checkInput: comprueba el estado de una tecla
|
||||
auto Input::checkKeyboardInput(Uint8 input, Repeat repeat) -> bool {
|
||||
auto Input::checkKeyboardInput(Action input, Repeat repeat) -> bool {
|
||||
const auto IDX = static_cast<std::size_t>(input);
|
||||
const bool *key_states = SDL_GetKeyboardState(nullptr);
|
||||
const bool IS_DOWN = key_states[key_bindings_[input].scancode];
|
||||
const bool IS_DOWN = key_states[key_bindings_[IDX].scancode];
|
||||
|
||||
if (repeat == Repeat::ON) {
|
||||
return IS_DOWN;
|
||||
}
|
||||
|
||||
// Modo edge-trigger: éxito sólo en el frame en que la tecla pasa de up a down
|
||||
const bool PRESS_EDGE = IS_DOWN && !key_bindings_[input].active;
|
||||
key_bindings_[input].active = IS_DOWN;
|
||||
const bool PRESS_EDGE = IS_DOWN && !key_bindings_[IDX].active;
|
||||
key_bindings_[IDX].active = IS_DOWN;
|
||||
return PRESS_EDGE;
|
||||
}
|
||||
|
||||
// Helper de checkInput: comprueba el estado de un botón de mando
|
||||
auto Input::checkGameControllerInput(Uint8 input, Repeat repeat, int index) -> bool {
|
||||
const bool IS_DOWN = SDL_GetGamepadButton(connected_controllers_[index], game_controller_bindings_[input].button);
|
||||
auto Input::checkGameControllerInput(Action input, Repeat repeat, int index) -> bool {
|
||||
const auto IDX = static_cast<std::size_t>(input);
|
||||
const bool IS_DOWN = SDL_GetGamepadButton(connected_controllers_[index], game_controller_bindings_[IDX].button);
|
||||
|
||||
if (repeat == Repeat::ON) {
|
||||
return IS_DOWN;
|
||||
}
|
||||
|
||||
// Modo edge-trigger: éxito sólo en el frame en que el botón pasa de up a down
|
||||
const bool PRESS_EDGE = IS_DOWN && !game_controller_bindings_[input].active;
|
||||
game_controller_bindings_[input].active = IS_DOWN;
|
||||
const bool PRESS_EDGE = IS_DOWN && !game_controller_bindings_[IDX].active;
|
||||
game_controller_bindings_[IDX].active = IS_DOWN;
|
||||
return PRESS_EDGE;
|
||||
}
|
||||
|
||||
|
||||
+34
-34
@@ -6,35 +6,6 @@
|
||||
#include <string> // for string, basic_string
|
||||
#include <vector> // for vector
|
||||
|
||||
enum InputAction : std::uint8_t {
|
||||
// Inputs obligatorios
|
||||
INVALID,
|
||||
UP,
|
||||
DOWN,
|
||||
LEFT,
|
||||
RIGHT,
|
||||
PAUSE,
|
||||
EXIT,
|
||||
ACCEPT,
|
||||
CANCEL,
|
||||
|
||||
// Inputs personalizados
|
||||
FIRE_LEFT,
|
||||
FIRE_CENTER,
|
||||
FIRE_RIGHT,
|
||||
WINDOW_FULLSCREEN,
|
||||
WINDOW_INC_ZOOM,
|
||||
WINDOW_DEC_ZOOM,
|
||||
|
||||
// GPU / shaders (hotkeys provisionales hasta que haya menú de opciones)
|
||||
NEXT_SHADER_PRESET,
|
||||
TOGGLE_SHADER,
|
||||
TOGGLE_SHADER_TYPE,
|
||||
|
||||
// Input obligatorio
|
||||
NUMBER_OF_INPUTS
|
||||
};
|
||||
|
||||
enum InputDisable : std::uint8_t {
|
||||
NOT_DISABLED,
|
||||
FOREVER,
|
||||
@@ -54,6 +25,35 @@ class Input {
|
||||
ANY
|
||||
};
|
||||
|
||||
enum class Action : std::uint8_t {
|
||||
// Inputs obligatorios
|
||||
INVALID,
|
||||
UP,
|
||||
DOWN,
|
||||
LEFT,
|
||||
RIGHT,
|
||||
PAUSE,
|
||||
EXIT,
|
||||
ACCEPT,
|
||||
CANCEL,
|
||||
|
||||
// Inputs personalizados
|
||||
FIRE_LEFT,
|
||||
FIRE_CENTER,
|
||||
FIRE_RIGHT,
|
||||
WINDOW_FULLSCREEN,
|
||||
WINDOW_INC_ZOOM,
|
||||
WINDOW_DEC_ZOOM,
|
||||
|
||||
// GPU / shaders (hotkeys provisionales hasta que haya menú de opciones)
|
||||
NEXT_SHADER_PRESET,
|
||||
TOGGLE_SHADER,
|
||||
TOGGLE_SHADER_TYPE,
|
||||
|
||||
// Centinela final (usar para sizing)
|
||||
NUMBER_OF_INPUTS
|
||||
};
|
||||
|
||||
// Singleton API
|
||||
static void init(const std::string &game_controller_db_path); // Crea la instancia
|
||||
static void destroy(); // Libera la instancia
|
||||
@@ -62,10 +62,10 @@ class Input {
|
||||
~Input(); // Destructor
|
||||
|
||||
void update(); // Actualiza el estado del objeto
|
||||
void bindKey(Uint8 input, SDL_Scancode code); // Asigna inputs a teclas
|
||||
void bindGameControllerButton(Uint8 input, SDL_GamepadButton button); // Asigna inputs a botones del mando
|
||||
void bindKey(Action input, SDL_Scancode code); // Asigna inputs a teclas
|
||||
void bindGameControllerButton(Action input, SDL_GamepadButton button); // Asigna inputs a botones del mando
|
||||
|
||||
auto checkInput(Uint8 input, Repeat repeat = Repeat::ON, Device device = Device::ANY, int index = 0) -> bool; // Comprueba si un input esta activo
|
||||
auto checkInput(Action input, Repeat repeat = Repeat::ON, Device device = Device::ANY, int index = 0) -> bool; // Comprueba si un input esta activo
|
||||
auto checkAnyInput(Device device = Device::ANY, int index = 0) -> bool; // Comprueba si hay almenos un input activo
|
||||
|
||||
auto discoverGameController() -> bool; // Busca si hay un mando conectado
|
||||
@@ -119,8 +119,8 @@ class Input {
|
||||
static auto buildControllerName(SDL_Gamepad *pad, int pad_index) -> std::string;
|
||||
|
||||
// Helpers de checkInput
|
||||
auto checkKeyboardInput(Uint8 input, Repeat repeat) -> bool;
|
||||
auto checkGameControllerInput(Uint8 input, Repeat repeat, int index) -> bool;
|
||||
auto checkKeyboardInput(Action input, Repeat repeat) -> bool;
|
||||
auto checkGameControllerInput(Action input, Repeat repeat, int index) -> bool;
|
||||
|
||||
// Helpers de discoverGameController
|
||||
void resetGameControllerState();
|
||||
|
||||
@@ -208,44 +208,44 @@ void Director::initInput() {
|
||||
Input::get()->discoverGameController();
|
||||
|
||||
// Teclado - Movimiento del jugador
|
||||
Input::get()->bindKey(UP, SDL_SCANCODE_UP);
|
||||
Input::get()->bindKey(DOWN, SDL_SCANCODE_DOWN);
|
||||
Input::get()->bindKey(LEFT, SDL_SCANCODE_LEFT);
|
||||
Input::get()->bindKey(RIGHT, SDL_SCANCODE_RIGHT);
|
||||
Input::get()->bindKey(FIRE_LEFT, SDL_SCANCODE_Q);
|
||||
Input::get()->bindKey(FIRE_CENTER, SDL_SCANCODE_W);
|
||||
Input::get()->bindKey(FIRE_RIGHT, SDL_SCANCODE_E);
|
||||
Input::get()->bindKey(Input::Action::UP, SDL_SCANCODE_UP);
|
||||
Input::get()->bindKey(Input::Action::DOWN, SDL_SCANCODE_DOWN);
|
||||
Input::get()->bindKey(Input::Action::LEFT, SDL_SCANCODE_LEFT);
|
||||
Input::get()->bindKey(Input::Action::RIGHT, SDL_SCANCODE_RIGHT);
|
||||
Input::get()->bindKey(Input::Action::FIRE_LEFT, SDL_SCANCODE_Q);
|
||||
Input::get()->bindKey(Input::Action::FIRE_CENTER, SDL_SCANCODE_W);
|
||||
Input::get()->bindKey(Input::Action::FIRE_RIGHT, SDL_SCANCODE_E);
|
||||
|
||||
// Teclado - Otros
|
||||
Input::get()->bindKey(ACCEPT, SDL_SCANCODE_RETURN);
|
||||
Input::get()->bindKey(CANCEL, SDL_SCANCODE_ESCAPE);
|
||||
Input::get()->bindKey(PAUSE, SDL_SCANCODE_ESCAPE);
|
||||
Input::get()->bindKey(EXIT, SDL_SCANCODE_ESCAPE);
|
||||
Input::get()->bindKey(WINDOW_DEC_ZOOM, SDL_SCANCODE_F1);
|
||||
Input::get()->bindKey(WINDOW_INC_ZOOM, SDL_SCANCODE_F2);
|
||||
Input::get()->bindKey(WINDOW_FULLSCREEN, SDL_SCANCODE_F3);
|
||||
Input::get()->bindKey(TOGGLE_SHADER, SDL_SCANCODE_F4);
|
||||
Input::get()->bindKey(TOGGLE_SHADER_TYPE, SDL_SCANCODE_F5);
|
||||
Input::get()->bindKey(NEXT_SHADER_PRESET, SDL_SCANCODE_F6);
|
||||
Input::get()->bindKey(Input::Action::ACCEPT, SDL_SCANCODE_RETURN);
|
||||
Input::get()->bindKey(Input::Action::CANCEL, SDL_SCANCODE_ESCAPE);
|
||||
Input::get()->bindKey(Input::Action::PAUSE, SDL_SCANCODE_ESCAPE);
|
||||
Input::get()->bindKey(Input::Action::EXIT, SDL_SCANCODE_ESCAPE);
|
||||
Input::get()->bindKey(Input::Action::WINDOW_DEC_ZOOM, SDL_SCANCODE_F1);
|
||||
Input::get()->bindKey(Input::Action::WINDOW_INC_ZOOM, SDL_SCANCODE_F2);
|
||||
Input::get()->bindKey(Input::Action::WINDOW_FULLSCREEN, SDL_SCANCODE_F3);
|
||||
Input::get()->bindKey(Input::Action::TOGGLE_SHADER, SDL_SCANCODE_F4);
|
||||
Input::get()->bindKey(Input::Action::TOGGLE_SHADER_TYPE, SDL_SCANCODE_F5);
|
||||
Input::get()->bindKey(Input::Action::NEXT_SHADER_PRESET, SDL_SCANCODE_F6);
|
||||
|
||||
// Mando - Movimiento del jugador
|
||||
Input::get()->bindGameControllerButton(UP, SDL_GAMEPAD_BUTTON_DPAD_UP);
|
||||
Input::get()->bindGameControllerButton(DOWN, SDL_GAMEPAD_BUTTON_DPAD_DOWN);
|
||||
Input::get()->bindGameControllerButton(LEFT, SDL_GAMEPAD_BUTTON_DPAD_LEFT);
|
||||
Input::get()->bindGameControllerButton(RIGHT, SDL_GAMEPAD_BUTTON_DPAD_RIGHT);
|
||||
Input::get()->bindGameControllerButton(FIRE_LEFT, SDL_GAMEPAD_BUTTON_WEST);
|
||||
Input::get()->bindGameControllerButton(FIRE_CENTER, SDL_GAMEPAD_BUTTON_NORTH);
|
||||
Input::get()->bindGameControllerButton(FIRE_RIGHT, SDL_GAMEPAD_BUTTON_EAST);
|
||||
Input::get()->bindGameControllerButton(Input::Action::UP, SDL_GAMEPAD_BUTTON_DPAD_UP);
|
||||
Input::get()->bindGameControllerButton(Input::Action::DOWN, SDL_GAMEPAD_BUTTON_DPAD_DOWN);
|
||||
Input::get()->bindGameControllerButton(Input::Action::LEFT, SDL_GAMEPAD_BUTTON_DPAD_LEFT);
|
||||
Input::get()->bindGameControllerButton(Input::Action::RIGHT, SDL_GAMEPAD_BUTTON_DPAD_RIGHT);
|
||||
Input::get()->bindGameControllerButton(Input::Action::FIRE_LEFT, SDL_GAMEPAD_BUTTON_WEST);
|
||||
Input::get()->bindGameControllerButton(Input::Action::FIRE_CENTER, SDL_GAMEPAD_BUTTON_NORTH);
|
||||
Input::get()->bindGameControllerButton(Input::Action::FIRE_RIGHT, SDL_GAMEPAD_BUTTON_EAST);
|
||||
|
||||
// Mando - Otros
|
||||
// SOUTH queda sin asignar para evitar salidas accidentales: pausa/cancel se hace con START/BACK.
|
||||
Input::get()->bindGameControllerButton(ACCEPT, SDL_GAMEPAD_BUTTON_EAST);
|
||||
Input::get()->bindGameControllerButton(Input::Action::ACCEPT, SDL_GAMEPAD_BUTTON_EAST);
|
||||
#ifdef GAME_CONSOLE
|
||||
Input::get()->bindGameControllerButton(input_pause, SDL_GAMEPAD_BUTTON_BACK);
|
||||
Input::get()->bindGameControllerButton(input_exit, SDL_GAMEPAD_BUTTON_START);
|
||||
#else
|
||||
Input::get()->bindGameControllerButton(PAUSE, SDL_GAMEPAD_BUTTON_START);
|
||||
Input::get()->bindGameControllerButton(EXIT, SDL_GAMEPAD_BUTTON_BACK);
|
||||
Input::get()->bindGameControllerButton(Input::Action::PAUSE, SDL_GAMEPAD_BUTTON_START);
|
||||
Input::get()->bindGameControllerButton(Input::Action::EXIT, SDL_GAMEPAD_BUTTON_BACK);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -95,27 +95,27 @@ void Player::init() {
|
||||
}
|
||||
|
||||
// Actua en consecuencia de la entrada recibida
|
||||
void Player::setInput(Uint8 input) {
|
||||
void Player::setInput(Input::Action input) {
|
||||
switch (input) {
|
||||
case LEFT:
|
||||
case Input::Action::LEFT:
|
||||
vel_x_ = -base_speed_;
|
||||
setWalkingStatus(STATUS_WALKING_LEFT);
|
||||
break;
|
||||
|
||||
case RIGHT:
|
||||
case Input::Action::RIGHT:
|
||||
vel_x_ = base_speed_;
|
||||
setWalkingStatus(STATUS_WALKING_RIGHT);
|
||||
break;
|
||||
|
||||
case FIRE_CENTER:
|
||||
case Input::Action::FIRE_CENTER:
|
||||
setFiringStatus(STATUS_FIRING_UP);
|
||||
break;
|
||||
|
||||
case FIRE_LEFT:
|
||||
case Input::Action::FIRE_LEFT:
|
||||
setFiringStatus(STATUS_FIRING_LEFT);
|
||||
break;
|
||||
|
||||
case FIRE_RIGHT:
|
||||
case Input::Action::FIRE_RIGHT:
|
||||
setFiringStatus(STATUS_FIRING_RIGHT);
|
||||
break;
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include <vector> // for vector
|
||||
|
||||
#include "utils/utils.h" // for Circle
|
||||
#include "core/input/input.h" // for Input::Action
|
||||
class AnimatedSprite;
|
||||
class Texture;
|
||||
|
||||
@@ -26,7 +27,7 @@ class Player {
|
||||
void move(); // Mueve el jugador a la posición y animación que le corresponde
|
||||
|
||||
void setPlayerTextures(const std::vector<Texture *> &texture); // Pone las texturas del jugador
|
||||
void setInput(Uint8 input); // Actua en consecuencia de la entrada recibida
|
||||
void setInput(Input::Action input); // Actua en consecuencia de la entrada recibida
|
||||
void setAnimation(); // Establece la animación correspondiente al estado
|
||||
|
||||
[[nodiscard]] auto getPosX() const -> int; // Obtiene el valor de la variable
|
||||
|
||||
+18
-18
@@ -2473,29 +2473,29 @@ void Game::processDemoInput() {
|
||||
const DemoKeys &keys = demo_.data_file[demo_.counter];
|
||||
|
||||
if (keys.left == 1) {
|
||||
players_[INDEX]->setInput(LEFT);
|
||||
players_[INDEX]->setInput(Input::Action::LEFT);
|
||||
}
|
||||
if (keys.right == 1) {
|
||||
players_[INDEX]->setInput(RIGHT);
|
||||
players_[INDEX]->setInput(Input::Action::RIGHT);
|
||||
}
|
||||
if (keys.no_input == 1) {
|
||||
players_[INDEX]->setInput(INVALID);
|
||||
players_[INDEX]->setInput(Input::Action::INVALID);
|
||||
}
|
||||
|
||||
if (keys.fire == 1 && players_[INDEX]->canFire()) {
|
||||
players_[INDEX]->setInput(FIRE_CENTER);
|
||||
players_[INDEX]->setInput(Input::Action::FIRE_CENTER);
|
||||
createBullet(players_[INDEX]->getPosX() + (players_[INDEX]->getWidth() / 2) - 4, players_[INDEX]->getPosY() + (players_[INDEX]->getHeight() / 2), Bullet::Kind::UP, players_[INDEX]->isPowerUp(), INDEX);
|
||||
players_[INDEX]->setFireCooldown(10);
|
||||
}
|
||||
|
||||
if (keys.fire_left == 1 && players_[INDEX]->canFire()) {
|
||||
players_[INDEX]->setInput(FIRE_LEFT);
|
||||
players_[INDEX]->setInput(Input::Action::FIRE_LEFT);
|
||||
createBullet(players_[INDEX]->getPosX() + (players_[INDEX]->getWidth() / 2) - 4, players_[INDEX]->getPosY() + (players_[INDEX]->getHeight() / 2), Bullet::Kind::LEFT, players_[INDEX]->isPowerUp(), INDEX);
|
||||
players_[INDEX]->setFireCooldown(10);
|
||||
}
|
||||
|
||||
if (keys.fire_right == 1 && players_[INDEX]->canFire()) {
|
||||
players_[INDEX]->setInput(FIRE_RIGHT);
|
||||
players_[INDEX]->setInput(Input::Action::FIRE_RIGHT);
|
||||
createBullet(players_[INDEX]->getPosX() + (players_[INDEX]->getWidth() / 2) - 4, players_[INDEX]->getPosY() + (players_[INDEX]->getHeight() / 2), Bullet::Kind::RIGHT, players_[INDEX]->isPowerUp(), INDEX);
|
||||
players_[INDEX]->setFireCooldown(10);
|
||||
}
|
||||
@@ -2531,20 +2531,20 @@ void Game::processPlayerLiveInput(Player *player, int i) {
|
||||
const auto &device = Options::inputs[i];
|
||||
|
||||
// Movimiento izquierda / derecha / nada
|
||||
if (input->checkInput(LEFT, Input::Repeat::ON, device.device_type, device.id)) {
|
||||
player->setInput(LEFT);
|
||||
if (input->checkInput(Input::Action::LEFT, Input::Repeat::ON, device.device_type, device.id)) {
|
||||
player->setInput(Input::Action::LEFT);
|
||||
demo_.keys.left = 1;
|
||||
} else if (input->checkInput(RIGHT, Input::Repeat::ON, device.device_type, device.id)) {
|
||||
player->setInput(RIGHT);
|
||||
} else if (input->checkInput(Input::Action::RIGHT, Input::Repeat::ON, device.device_type, device.id)) {
|
||||
player->setInput(Input::Action::RIGHT);
|
||||
demo_.keys.right = 1;
|
||||
} else {
|
||||
player->setInput(INVALID);
|
||||
player->setInput(Input::Action::INVALID);
|
||||
demo_.keys.no_input = 1;
|
||||
}
|
||||
|
||||
// Disparo al centro
|
||||
if (input->checkInput(FIRE_CENTER, Input::Repeat::ON, device.device_type, device.id) && player->canFire()) {
|
||||
player->setInput(FIRE_CENTER);
|
||||
if (input->checkInput(Input::Action::FIRE_CENTER, Input::Repeat::ON, device.device_type, device.id) && player->canFire()) {
|
||||
player->setInput(Input::Action::FIRE_CENTER);
|
||||
createBullet(player->getPosX() + (player->getWidth() / 2) - 4, player->getPosY() + (player->getHeight() / 2), Bullet::Kind::UP, player->isPowerUp(), i);
|
||||
player->setFireCooldown(10);
|
||||
Audio::get()->playSound(bullet_sound_);
|
||||
@@ -2552,8 +2552,8 @@ void Game::processPlayerLiveInput(Player *player, int i) {
|
||||
}
|
||||
|
||||
// Disparo a la izquierda
|
||||
if (input->checkInput(FIRE_LEFT, Input::Repeat::ON, device.device_type, device.id) && player->canFire()) {
|
||||
player->setInput(FIRE_LEFT);
|
||||
if (input->checkInput(Input::Action::FIRE_LEFT, Input::Repeat::ON, device.device_type, device.id) && player->canFire()) {
|
||||
player->setInput(Input::Action::FIRE_LEFT);
|
||||
createBullet(player->getPosX() + (player->getWidth() / 2) - 4, player->getPosY() + (player->getHeight() / 2), Bullet::Kind::LEFT, player->isPowerUp(), i);
|
||||
player->setFireCooldown(10);
|
||||
Audio::get()->playSound(bullet_sound_);
|
||||
@@ -2561,8 +2561,8 @@ void Game::processPlayerLiveInput(Player *player, int i) {
|
||||
}
|
||||
|
||||
// Disparo a la derecha
|
||||
if (input->checkInput(FIRE_RIGHT, Input::Repeat::ON, device.device_type, device.id) && player->canFire()) {
|
||||
player->setInput(FIRE_RIGHT);
|
||||
if (input->checkInput(Input::Action::FIRE_RIGHT, Input::Repeat::ON, device.device_type, device.id) && player->canFire()) {
|
||||
player->setInput(Input::Action::FIRE_RIGHT);
|
||||
createBullet(player->getPosX() + (player->getWidth() / 2) - 4, player->getPosY() + (player->getHeight() / 2), Bullet::Kind::RIGHT, player->isPowerUp(), i);
|
||||
player->setFireCooldown(10);
|
||||
Audio::get()->playSound(bullet_sound_);
|
||||
@@ -2570,7 +2570,7 @@ void Game::processPlayerLiveInput(Player *player, int i) {
|
||||
}
|
||||
|
||||
// Pausa
|
||||
if (input->checkInput(PAUSE, Input::Repeat::OFF, device.device_type, device.id)) {
|
||||
if (input->checkInput(Input::Action::PAUSE, Input::Repeat::OFF, device.device_type, device.id)) {
|
||||
section_->subsection = SUBSECTION_GAME_PAUSE;
|
||||
}
|
||||
|
||||
|
||||
@@ -211,7 +211,7 @@ void Instructions::checkEvents() {
|
||||
// Comprueba las entradas
|
||||
void Instructions::checkInput() {
|
||||
#ifndef __EMSCRIPTEN__
|
||||
if (Input::get()->checkInput(EXIT, Input::Repeat::OFF)) {
|
||||
if (Input::get()->checkInput(Input::Action::EXIT, Input::Repeat::OFF)) {
|
||||
quit_requested_ = true;
|
||||
finished_ = true;
|
||||
return;
|
||||
@@ -219,7 +219,7 @@ void Instructions::checkInput() {
|
||||
#endif
|
||||
if (GlobalInputs::handle()) { return; }
|
||||
|
||||
if (Input::get()->checkInput(PAUSE, Input::Repeat::OFF) || Input::get()->checkInput(ACCEPT, Input::Repeat::OFF) || Input::get()->checkInput(FIRE_LEFT, Input::Repeat::OFF) || Input::get()->checkInput(FIRE_CENTER, Input::Repeat::OFF) || Input::get()->checkInput(FIRE_RIGHT, Input::Repeat::OFF)) {
|
||||
if (Input::get()->checkInput(Input::Action::PAUSE, Input::Repeat::OFF) || Input::get()->checkInput(Input::Action::ACCEPT, Input::Repeat::OFF) || Input::get()->checkInput(Input::Action::FIRE_LEFT, Input::Repeat::OFF) || Input::get()->checkInput(Input::Action::FIRE_CENTER, Input::Repeat::OFF) || Input::get()->checkInput(Input::Action::FIRE_RIGHT, Input::Repeat::OFF)) {
|
||||
if (mode_ == Mode::AUTO) {
|
||||
finished_ = true;
|
||||
} else {
|
||||
|
||||
@@ -167,14 +167,14 @@ Intro::~Intro() {
|
||||
// Comprueba las entradas
|
||||
void Intro::checkInput() {
|
||||
#ifndef __EMSCRIPTEN__
|
||||
if (Input::get()->checkInput(EXIT, Input::Repeat::OFF)) {
|
||||
if (Input::get()->checkInput(Input::Action::EXIT, Input::Repeat::OFF)) {
|
||||
section_->name = SECTION_PROG_QUIT;
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
if (GlobalInputs::handle()) { return; }
|
||||
|
||||
if (Input::get()->checkInput(PAUSE, Input::Repeat::OFF) || Input::get()->checkInput(ACCEPT, Input::Repeat::OFF) || Input::get()->checkInput(FIRE_LEFT, Input::Repeat::OFF) || Input::get()->checkInput(FIRE_CENTER, Input::Repeat::OFF) || Input::get()->checkInput(FIRE_RIGHT, Input::Repeat::OFF)) {
|
||||
if (Input::get()->checkInput(Input::Action::PAUSE, Input::Repeat::OFF) || Input::get()->checkInput(Input::Action::ACCEPT, Input::Repeat::OFF) || Input::get()->checkInput(Input::Action::FIRE_LEFT, Input::Repeat::OFF) || Input::get()->checkInput(Input::Action::FIRE_CENTER, Input::Repeat::OFF) || Input::get()->checkInput(Input::Action::FIRE_RIGHT, Input::Repeat::OFF)) {
|
||||
Audio::get()->stopMusic();
|
||||
section_->name = SECTION_PROG_TITLE;
|
||||
section_->subsection = SUBSECTION_TITLE_1;
|
||||
|
||||
@@ -57,14 +57,14 @@ void Logo::checkLogoEnd() {
|
||||
// Comprueba las entradas
|
||||
void Logo::checkInput() {
|
||||
#ifndef __EMSCRIPTEN__
|
||||
if (Input::get()->checkInput(EXIT, Input::Repeat::OFF)) {
|
||||
if (Input::get()->checkInput(Input::Action::EXIT, Input::Repeat::OFF)) {
|
||||
section_->name = SECTION_PROG_QUIT;
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
if (GlobalInputs::handle()) { return; }
|
||||
|
||||
if (Input::get()->checkInput(PAUSE, Input::Repeat::OFF) || Input::get()->checkInput(ACCEPT, Input::Repeat::OFF) || Input::get()->checkInput(FIRE_LEFT, Input::Repeat::OFF) || Input::get()->checkInput(FIRE_CENTER, Input::Repeat::OFF) || Input::get()->checkInput(FIRE_RIGHT, Input::Repeat::OFF)) {
|
||||
if (Input::get()->checkInput(Input::Action::PAUSE, Input::Repeat::OFF) || Input::get()->checkInput(Input::Action::ACCEPT, Input::Repeat::OFF) || Input::get()->checkInput(Input::Action::FIRE_LEFT, Input::Repeat::OFF) || Input::get()->checkInput(Input::Action::FIRE_CENTER, Input::Repeat::OFF) || Input::get()->checkInput(Input::Action::FIRE_RIGHT, Input::Repeat::OFF)) {
|
||||
section_->name = SECTION_PROG_TITLE;
|
||||
section_->subsection = SUBSECTION_TITLE_1;
|
||||
}
|
||||
|
||||
@@ -622,7 +622,7 @@ void Title::render() {
|
||||
// Comprueba las entradas
|
||||
void Title::checkInput() {
|
||||
#ifndef __EMSCRIPTEN__
|
||||
if (Input::get()->checkInput(EXIT, Input::Repeat::OFF)) {
|
||||
if (Input::get()->checkInput(Input::Action::EXIT, Input::Repeat::OFF)) {
|
||||
section_->name = SECTION_PROG_QUIT;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -740,28 +740,28 @@ void Menu::setDefaultActionWhenCancel(int item) {
|
||||
|
||||
// Gestiona la entrada de teclado y mando durante el menu
|
||||
void Menu::checkInput() {
|
||||
if (Input::get()->checkInput(UP, Input::Repeat::OFF)) {
|
||||
if (Input::get()->checkInput(Input::Action::UP, Input::Repeat::OFF)) {
|
||||
decreaseSelectorIndex();
|
||||
if (sound_move_ != nullptr) {
|
||||
Audio::get()->playSound(sound_move_);
|
||||
}
|
||||
}
|
||||
|
||||
if (Input::get()->checkInput(DOWN, Input::Repeat::OFF)) {
|
||||
if (Input::get()->checkInput(Input::Action::DOWN, Input::Repeat::OFF)) {
|
||||
increaseSelectorIndex();
|
||||
if (sound_move_ != nullptr) {
|
||||
Audio::get()->playSound(sound_move_);
|
||||
}
|
||||
}
|
||||
|
||||
if (Input::get()->checkInput(ACCEPT, Input::Repeat::OFF)) {
|
||||
if (Input::get()->checkInput(Input::Action::ACCEPT, Input::Repeat::OFF)) {
|
||||
item_selected_ = selector_.index;
|
||||
if (sound_accept_ != nullptr) {
|
||||
Audio::get()->playSound(sound_accept_);
|
||||
}
|
||||
}
|
||||
|
||||
if (Input::get()->checkInput(CANCEL, Input::Repeat::OFF)) {
|
||||
if (Input::get()->checkInput(Input::Action::CANCEL, Input::Repeat::OFF)) {
|
||||
item_selected_ = default_action_when_cancel_;
|
||||
if (sound_cancel_ != nullptr) {
|
||||
Audio::get()->playSound(sound_cancel_);
|
||||
|
||||
Reference in New Issue
Block a user