Add new inputs

This commit is contained in:
tovjemam 2025-09-09 01:00:21 +02:00
parent e982cd73a8
commit a20766e335
2 changed files with 27 additions and 9 deletions

View File

@ -12,6 +12,9 @@ namespace game
PI_CROUCH = 1 << 5, PI_CROUCH = 1 << 5,
PI_USE = 1 << 6, PI_USE = 1 << 6,
PI_ATTACK = 1 << 7, PI_ATTACK = 1 << 7,
PI_DEBUG1 = 1 << 8,
PI_DEBUG2 = 1 << 9,
PI_DEBUG3 = 1 << 10,
}; };
using PlayerInputFlags = unsigned int; using PlayerInputFlags = unsigned int;

View File

@ -94,7 +94,7 @@ static bool InitGL()
glEnable(GL_DEBUG_OUTPUT); glEnable(GL_DEBUG_OUTPUT);
glDebugMessageCallback(GLDebugCallback, 0); glDebugMessageCallback(GLDebugCallback, 0);
SDL_GL_SetSwapInterval(1); SDL_GL_SetSwapInterval(0);
#endif #endif
@ -156,29 +156,44 @@ static void Frame()
s_app->SetViewportSize(width, height); s_app->SetViewportSize(width, height);
game::PlayerInputFlags input = 0; game::PlayerInputFlags input = 0;
const uint8_t* state = SDL_GetKeyboardState(nullptr); const uint8_t* kbd_state = SDL_GetKeyboardState(nullptr);
if (state[SDL_GetScancodeFromKey(SDLK_w)]) if (kbd_state[SDL_GetScancodeFromKey(SDLK_w)])
input |= game::PI_FORWARD; input |= game::PI_FORWARD;
if (state[SDL_GetScancodeFromKey(SDLK_s)]) if (kbd_state[SDL_GetScancodeFromKey(SDLK_s)])
input |= game::PI_BACKWARD; input |= game::PI_BACKWARD;
if (state[SDL_GetScancodeFromKey(SDLK_a)]) if (kbd_state[SDL_GetScancodeFromKey(SDLK_a)])
input |= game::PI_LEFT; input |= game::PI_LEFT;
if (state[SDL_GetScancodeFromKey(SDLK_d)]) if (kbd_state[SDL_GetScancodeFromKey(SDLK_d)])
input |= game::PI_RIGHT; input |= game::PI_RIGHT;
if (state[SDL_GetScancodeFromKey(SDLK_SPACE)]) if (kbd_state[SDL_GetScancodeFromKey(SDLK_SPACE)])
input |= game::PI_JUMP; input |= game::PI_JUMP;
if (state[SDL_GetScancodeFromKey(SDLK_LCTRL)]) if (kbd_state[SDL_GetScancodeFromKey(SDLK_LCTRL)])
input |= game::PI_CROUCH; input |= game::PI_CROUCH;
if (state[SDL_GetScancodeFromKey(SDLK_e)]) if (kbd_state[SDL_GetScancodeFromKey(SDLK_e)])
input |= game::PI_USE; input |= game::PI_USE;
if (kbd_state[SDL_GetScancodeFromKey(SDLK_F3)])
input |= game::PI_DEBUG1;
if (kbd_state[SDL_GetScancodeFromKey(SDLK_F4)])
input |= game::PI_DEBUG2;
if (kbd_state[SDL_GetScancodeFromKey(SDLK_F5)])
input |= game::PI_DEBUG3;
int mouse_state = SDL_GetMouseState(nullptr, nullptr);
if (mouse_state & SDL_BUTTON(SDL_BUTTON_LEFT))
input |= game::PI_ATTACK;
s_app->SetInput(input); s_app->SetInput(input);
s_app->Frame(); s_app->Frame();