les tecles de control estan definides al fitxer de configuracio

This commit is contained in:
2025-11-02 17:08:56 +01:00
parent 9102c6a65e
commit ba06bccabc
7 changed files with 57 additions and 19 deletions

View File

@@ -8,6 +8,8 @@
#include <unordered_map> // Para unordered_map, _Node_iterator, operator==, _Node_iterator_base, _Node_const_iterator
#include <utility> // Para pair, move
#include "game/options.hpp" // Para Options::controls
// Singleton
Input* Input::instance = nullptr;
@@ -26,8 +28,7 @@ auto Input::get() -> Input* { return Input::instance; }
Input::Input(std::string game_controller_db_path, std::string gamepad_configs_file)
: gamepad_mappings_file_(std::move(game_controller_db_path)),
gamepad_configs_file_(std::move(gamepad_configs_file)) {
// Inicializa el subsistema SDL_INIT_GAMEPAD
initSDLGamePad();
initSDLGamePad(); // Inicializa el subsistema SDL_INIT_GAMEPAD
}
// Asigna inputs a teclas
@@ -35,6 +36,13 @@ void Input::bindKey(Action action, SDL_Scancode code) {
keyboard_.bindings[action].scancode = code;
}
// Aplica las teclas configuradas desde Options
void Input::applyKeyboardBindingsFromOptions() {
bindKey(Action::LEFT, Options::controls.key_left);
bindKey(Action::RIGHT, Options::controls.key_right);
bindKey(Action::JUMP, Options::controls.key_jump);
}
// Asigna inputs a botones del mando
void Input::bindGameControllerButton(const std::shared_ptr<Gamepad>& gamepad, Action action, SDL_GamepadButton button) {
if (gamepad != nullptr) {