This commit is contained in:
Isuru Samarathunga
2025-10-18 14:13:36 +05:30
parent 57bc80f4f9
commit fb66a2d09d
10 changed files with 157 additions and 51 deletions

View File

@ -46,7 +46,7 @@ namespace ia::iae
case SDL_EVENT_KEY_DOWN:
s_keys[event->key.scancode] = true;
break;
case SDL_EVENT_KEY_UP:
s_keys[event->key.scancode] = false;
break;
@ -62,10 +62,8 @@ namespace ia::iae
Vec2 InputManager::GetAxis()
{
return Vec2{
IsKeyDown(s_axisInputs[3]) + IsKeyDown(s_axisInputs[2]) * -1,
IsKeyDown(s_axisInputs[1]) + IsKeyDown(s_axisInputs[0]) * -1
};
return Vec2{IsKeyDown(s_axisInputs[3]) + IsKeyDown(s_axisInputs[2]) * -1,
IsKeyDown(s_axisInputs[1]) + IsKeyDown(s_axisInputs[0]) * -1};
}
VOID InputManager::SwitchModeToText()
@ -100,42 +98,42 @@ namespace ia::iae
BOOL InputManager::IsActionDown(IN Handle action)
{
const auto& t = s_actions[action];
for(const auto& k : t)
if(IsKeyDown(k))
const auto &t = s_actions[action];
for (const auto &k : t)
if (IsKeyDown(k))
return true;
return false;
}
BOOL InputManager::WasActionPressed(IN Handle action)
{
const auto& t = s_actions[action];
for(const auto& k : t)
if(WasKeyPressed(k))
const auto &t = s_actions[action];
for (const auto &k : t)
if (WasKeyPressed(k))
return true;
return false;
}
BOOL InputManager::WasActionReleased(IN Handle action)
{
const auto& t = s_actions[action];
for(const auto& k : t)
if(WasKeyReleased(k))
const auto &t = s_actions[action];
for (const auto &k : t)
if (WasKeyReleased(k))
return true;
return false;
}
BOOL InputManager::IsActionDown(IN CONST String& action)
BOOL InputManager::IsActionDown(IN CONST String &action)
{
return IsActionDown(s_actionNames[action]);
}
BOOL InputManager::WasActionPressed(IN CONST String& action)
BOOL InputManager::WasActionPressed(IN CONST String &action)
{
return WasActionPressed(s_actionNames[action]);
}
BOOL InputManager::WasActionReleased(IN CONST String& action)
BOOL InputManager::WasActionReleased(IN CONST String &action)
{
return WasActionReleased(s_actionNames[action]);
}
@ -144,7 +142,7 @@ namespace ia::iae
{
s_actions.pushBack({key});
const auto handle = s_actions.size() - 1;
s_actionNames[name] = handle;
s_actionNames[name] = handle;
return handle;
}
@ -155,6 +153,39 @@ namespace ia::iae
s_axisInputs[2] = leftKey;
s_axisInputs[3] = rightKey;
}
VOID InputManager::SetKey(IN InputKey key, IN BOOL state)
{
s_keys[(UINT8) key] = state;
}
VOID InputManager::SetAxis(IN BOOL up, IN BOOL down, IN BOOL left, IN BOOL right)
{
s_keys[(UINT8) s_axisInputs[0]] = up;
s_keys[(UINT8) s_axisInputs[1]] = down;
s_keys[(UINT8) s_axisInputs[2]] = left;
s_keys[(UINT8) s_axisInputs[3]] = right;
}
VOID InputManager::SetAxisUp(IN BOOL v)
{
s_keys[(UINT8) s_axisInputs[0]] = v;
}
VOID InputManager::SetAxisDown(IN BOOL v)
{
s_keys[(UINT8) s_axisInputs[1]] = v;
}
VOID InputManager::SetAxisLeft(IN BOOL v)
{
s_keys[(UINT8) s_axisInputs[2]] = v;
}
VOID InputManager::SetAxisRight(IN BOOL v)
{
s_keys[(UINT8) s_axisInputs[3]] = v;
}
} // namespace ia::iae
namespace ia::iae
@ -209,17 +240,17 @@ namespace ia::iae
return InputManager::WasActionReleased(action);
}
BOOL Engine::IsInputActionDown(IN CONST String& action)
BOOL Engine::IsInputActionDown(IN CONST String &action)
{
return InputManager::IsActionDown(action);
}
BOOL Engine::WasInputActionPressed(IN CONST String& action)
BOOL Engine::WasInputActionPressed(IN CONST String &action)
{
return InputManager::WasActionPressed(action);
}
BOOL Engine::WasInputActionReleased(IN CONST String& action)
BOOL Engine::WasInputActionReleased(IN CONST String &action)
{
return InputManager::WasActionReleased(action);
}
@ -233,4 +264,34 @@ namespace ia::iae
{
InputManager::BindAxis(upKey, downKey, leftKey, rightKey);
}
VOID Engine::SetKey(IN InputKey key, IN BOOL state)
{
InputManager::SetKey(key, state);
}
VOID Engine::SetAxis(IN BOOL up, IN BOOL down, IN BOOL left, IN BOOL right)
{
InputManager::SetAxis(up, down, left, right);
}
VOID Engine::SetAxisUp(IN BOOL v)
{
InputManager::SetAxisUp(v);
}
VOID Engine::SetAxisDown(IN BOOL v)
{
InputManager::SetAxisDown(v);
}
VOID Engine::SetAxisLeft(IN BOOL v)
{
InputManager::SetAxisLeft(v);
}
VOID Engine::SetAxisRight(IN BOOL v)
{
InputManager::SetAxisRight(v);
}
} // namespace ia::iae