39 lines
1000 B
C++
39 lines
1000 B
C++
#pragma once
|
|
#include <SDL_events.h>
|
|
#include <vector>
|
|
|
|
#include "GamePad.h"
|
|
|
|
namespace KapitanGame {
|
|
enum class Controllers : int {
|
|
Controller1,
|
|
Controller2,
|
|
Controller3,
|
|
Controller4
|
|
};
|
|
|
|
class KInput {
|
|
std::vector<SDL_GameController*> ConnectedControllers;
|
|
std::vector<GamePad> ControllerInputs;
|
|
std::vector<GamePad> LastControllerInputs;
|
|
std::vector<Uint8> KeyboardInputs;
|
|
std::vector<Uint8> LastKeyboardInputs;
|
|
int GamepadsCount;
|
|
bool Initialized;
|
|
public:
|
|
KInput();
|
|
void Init();
|
|
void Free();
|
|
void HandleInputPreEvents();
|
|
void HandleInputPostEvents();
|
|
void HandleEvent(const SDL_Event& event);
|
|
bool IsControllerButtonPressed(Controllers controllerId, SDL_GameControllerButton button);
|
|
bool IsControllerButtonHeld(Controllers controllerId, SDL_GameControllerButton button);
|
|
float GetControllerAxis(Controllers controllerId, SDL_GameControllerAxis axis);
|
|
bool IsKeyboardButtonHeld(Uint8 scanCode);
|
|
bool IsKeyboardButtonPressed(Uint8 scanCode);
|
|
};
|
|
}
|
|
|
|
|