migrant input: ja mapeja be tots els botons desde el fitxer de configuració
This commit is contained in:
@@ -49,26 +49,26 @@ class Input {
|
|||||||
|
|
||||||
Keyboard()
|
Keyboard()
|
||||||
: bindings{
|
: bindings{
|
||||||
// Teclado - Movimiento del jugador
|
// Movimiento del jugador
|
||||||
{Action::UP, KeyState(SDL_SCANCODE_UP)},
|
{Action::UP, KeyState(SDL_SCANCODE_UP)},
|
||||||
{Action::DOWN, KeyState(SDL_SCANCODE_DOWN)},
|
{Action::DOWN, KeyState(SDL_SCANCODE_DOWN)},
|
||||||
{Action::LEFT, KeyState(SDL_SCANCODE_LEFT)},
|
{Action::LEFT, KeyState(SDL_SCANCODE_LEFT)},
|
||||||
{Action::RIGHT, KeyState(SDL_SCANCODE_RIGHT)},
|
{Action::RIGHT, KeyState(SDL_SCANCODE_RIGHT)},
|
||||||
|
|
||||||
// Teclado - Disparo del jugador
|
// Disparo del jugador
|
||||||
{Action::FIRE_LEFT, KeyState(SDL_SCANCODE_Q)},
|
{Action::FIRE_LEFT, KeyState(SDL_SCANCODE_Q)},
|
||||||
{Action::FIRE_CENTER, KeyState(SDL_SCANCODE_W)},
|
{Action::FIRE_CENTER, KeyState(SDL_SCANCODE_W)},
|
||||||
{Action::FIRE_RIGHT, KeyState(SDL_SCANCODE_E)},
|
{Action::FIRE_RIGHT, KeyState(SDL_SCANCODE_E)},
|
||||||
|
|
||||||
// Teclado - Interfaz
|
// Interfaz
|
||||||
{Action::START, KeyState(SDL_SCANCODE_RETURN)},
|
{Action::START, KeyState(SDL_SCANCODE_RETURN)},
|
||||||
|
|
||||||
// Teclado - Menu de servicio
|
// Menu de servicio
|
||||||
{Action::SERVICE, KeyState(SDL_SCANCODE_0)},
|
{Action::SERVICE, KeyState(SDL_SCANCODE_0)},
|
||||||
{Action::SM_SELECT, KeyState(SDL_SCANCODE_RETURN)},
|
{Action::SM_SELECT, KeyState(SDL_SCANCODE_RETURN)},
|
||||||
{Action::SM_BACK, KeyState(SDL_SCANCODE_BACKSPACE)},
|
{Action::SM_BACK, KeyState(SDL_SCANCODE_BACKSPACE)},
|
||||||
|
|
||||||
// Teclado - Control del programa
|
// Control del programa
|
||||||
{Action::EXIT, KeyState(SDL_SCANCODE_ESCAPE)},
|
{Action::EXIT, KeyState(SDL_SCANCODE_ESCAPE)},
|
||||||
{Action::PAUSE, KeyState(SDL_SCANCODE_P)},
|
{Action::PAUSE, KeyState(SDL_SCANCODE_P)},
|
||||||
{Action::BACK, KeyState(SDL_SCANCODE_BACKSPACE)},
|
{Action::BACK, KeyState(SDL_SCANCODE_BACKSPACE)},
|
||||||
@@ -99,20 +99,24 @@ class Input {
|
|||||||
instance_id(SDL_GetJoystickID(SDL_GetGamepadJoystick(gamepad))),
|
instance_id(SDL_GetJoystickID(SDL_GetGamepadJoystick(gamepad))),
|
||||||
name(std::string(SDL_GetGamepadName(gamepad))),
|
name(std::string(SDL_GetGamepadName(gamepad))),
|
||||||
bindings{
|
bindings{
|
||||||
// Mando - Movimiento del jugador
|
// Movimiento del jugador
|
||||||
{Action::UP, ButtonState(SDL_GAMEPAD_BUTTON_DPAD_UP)},
|
{Action::UP, ButtonState(SDL_GAMEPAD_BUTTON_DPAD_UP)},
|
||||||
{Action::DOWN, ButtonState(SDL_GAMEPAD_BUTTON_DPAD_DOWN)},
|
{Action::DOWN, ButtonState(SDL_GAMEPAD_BUTTON_DPAD_DOWN)},
|
||||||
{Action::LEFT, ButtonState(SDL_GAMEPAD_BUTTON_DPAD_LEFT)},
|
{Action::LEFT, ButtonState(SDL_GAMEPAD_BUTTON_DPAD_LEFT)},
|
||||||
{Action::RIGHT, ButtonState(SDL_GAMEPAD_BUTTON_DPAD_RIGHT)},
|
{Action::RIGHT, ButtonState(SDL_GAMEPAD_BUTTON_DPAD_RIGHT)},
|
||||||
|
|
||||||
// Mando - Disparo del jugador
|
// Disparo del jugador
|
||||||
{Action::FIRE_LEFT, ButtonState(SDL_GAMEPAD_BUTTON_WEST)},
|
{Action::FIRE_LEFT, ButtonState(SDL_GAMEPAD_BUTTON_WEST)},
|
||||||
{Action::FIRE_CENTER, ButtonState(SDL_GAMEPAD_BUTTON_NORTH)},
|
{Action::FIRE_CENTER, ButtonState(SDL_GAMEPAD_BUTTON_NORTH)},
|
||||||
{Action::FIRE_RIGHT, ButtonState(SDL_GAMEPAD_BUTTON_EAST)},
|
{Action::FIRE_RIGHT, ButtonState(SDL_GAMEPAD_BUTTON_EAST)},
|
||||||
|
|
||||||
// Mando - Interfaz
|
// Interfaz
|
||||||
{Action::START, ButtonState(SDL_GAMEPAD_BUTTON_START)},
|
{Action::START, ButtonState(SDL_GAMEPAD_BUTTON_START)},
|
||||||
{Action::SERVICE, ButtonState(SDL_GAMEPAD_BUTTON_BACK)}} {}
|
{Action::SERVICE, ButtonState(SDL_GAMEPAD_BUTTON_BACK)},
|
||||||
|
|
||||||
|
// Menu de servicio
|
||||||
|
{Action::SM_SELECT, ButtonState(SDL_GAMEPAD_BUTTON_WEST)},
|
||||||
|
{Action::SM_BACK, ButtonState(SDL_GAMEPAD_BUTTON_NORTH)}} {}
|
||||||
|
|
||||||
~Gamepad() {
|
~Gamepad() {
|
||||||
if (pad) {
|
if (pad) {
|
||||||
|
|||||||
@@ -92,3 +92,8 @@ const std::unordered_map<std::string, SDL_GamepadButton> stringToButton = {
|
|||||||
{"DPAD_LEFT", SDL_GAMEPAD_BUTTON_DPAD_LEFT},
|
{"DPAD_LEFT", SDL_GAMEPAD_BUTTON_DPAD_LEFT},
|
||||||
{"DPAD_RIGHT", SDL_GAMEPAD_BUTTON_DPAD_RIGHT}
|
{"DPAD_RIGHT", SDL_GAMEPAD_BUTTON_DPAD_RIGHT}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const std::unordered_map<InputAction, InputAction> actionToAction = {
|
||||||
|
{InputAction::SM_SELECT, InputAction::FIRE_LEFT},
|
||||||
|
{InputAction::SM_BACK, InputAction::FIRE_CENTER},
|
||||||
|
};
|
||||||
@@ -51,3 +51,4 @@ extern const std::unordered_map<InputAction, std::string> actionToString;
|
|||||||
extern const std::unordered_map<std::string, InputAction> stringToAction;
|
extern const std::unordered_map<std::string, InputAction> stringToAction;
|
||||||
extern const std::unordered_map<SDL_GamepadButton, std::string> buttonToString;
|
extern const std::unordered_map<SDL_GamepadButton, std::string> buttonToString;
|
||||||
extern const std::unordered_map<std::string, SDL_GamepadButton> stringToButton;
|
extern const std::unordered_map<std::string, SDL_GamepadButton> stringToButton;
|
||||||
|
extern const std::unordered_map<InputAction, InputAction> actionToAction;
|
||||||
Reference in New Issue
Block a user