68 lines
1.2 KiB
C++
68 lines
1.2 KiB
C++
#include "jinput.h"
|
|
#include <SDL2/SDL.h>
|
|
|
|
namespace input
|
|
{
|
|
static const uint8_t *keys = nullptr;
|
|
static uint8_t keypressed = 0;
|
|
static uint8_t keydown = 0;
|
|
|
|
void init()
|
|
{
|
|
keys = SDL_GetKeyboardState(NULL);
|
|
}
|
|
|
|
// Determina si la tecla especificada està sent polsada ara mateix
|
|
bool keyDown(const uint8_t key)
|
|
{
|
|
return keys[key];
|
|
}
|
|
|
|
// Determina si la tecla especificada ha sigut polsada, pero no tornarà a ser true fins
|
|
bool keyPressed(const uint8_t key)
|
|
{
|
|
return key == keypressed;
|
|
}
|
|
|
|
// Determina si hi ha alguna tecla polsada ara mateix
|
|
bool anyKey()
|
|
{
|
|
return keydown != 0;
|
|
}
|
|
|
|
// Torna el codi de la tecla que està sent polsada ara mateix
|
|
const uint8_t whichKey()
|
|
{
|
|
return keydown;
|
|
}
|
|
|
|
void updateKey(uint8_t key)
|
|
{
|
|
keydown = key;
|
|
}
|
|
|
|
void updateKeypressed(uint8_t key)
|
|
{
|
|
keypressed = key;
|
|
}
|
|
|
|
int mouseX()
|
|
{
|
|
int x;
|
|
SDL_GetMouseState(&x, NULL);
|
|
return x;
|
|
}
|
|
|
|
int mouseY()
|
|
{
|
|
int y;
|
|
SDL_GetMouseState(NULL, &y);
|
|
return y;
|
|
}
|
|
|
|
bool mouseBtn(int btn)
|
|
{
|
|
return (SDL_GetMouseState(NULL, NULL) & SDL_BUTTON(btn));
|
|
}
|
|
}
|