Files
dilemmaker/source/japi/input.h
2025-10-29 16:22:32 +01:00

87 lines
3.1 KiB
C++

#pragma once
#include <stdint.h>
namespace input
{
namespace mouse
{
namespace button
{
const int left = 1;
const int middle = 2;
const int right = 3;
}
}
/// @brief Inicialitza els sistemes de teclat, ratolí i gamepad
void init();
/// @brief Determina si la tecla especificada està sent polsada ara mateix
/// @param key tecla a consultar
/// @return true si està polsada, false si no
bool keyDown(const uint8_t key);
/// @brief Determina si la tecla especificada ha sigut polsada, pero no tornarà a ser true fins
/// @brief que no se solte la tecla i se torne a polsar.
/// @param key tecla a consultar
/// @return true si està polsada, false si no
bool keyPressed(const uint8_t key);
/// @brief Determina si hi ha alguna tecla polsada ara mateix
/// @return true si hi ha alguna tecla polsada, false si no
bool anyKey();
/// @brief El equivalent a anykey per a keypressed
/// @return true si hi ha alguna tecla polsada, false si no
bool anyKeyPressed();
/// @brief Torna el codi de la tecla que està sent polsada ara mateix
/// @return Quina tecla està sent polsada
const uint8_t whichKey();
/// @brief Torna el codi de la tecla que està sent polsada ara mateix
/// @brief (nomes una vegada, com keypress)
/// @return Quina tecla està sent polsada
const uint8_t getKeyPressed();
/// @brief (US INTERN) Actualitza la tecla actualment polsada (keydown) desde jgame
/// @param key tecla polsada
void updateKey(const uint8_t key);
/// @brief (US INTERN) Actualitza la tecla actualment polsada (keypress) desde jgame
/// @param key tecla polsada
void updateKeypressed(const uint8_t key);
/// @brief (US INTERN) Actualitza el botó del ratolí actualment polsat desde jgame
/// @param btn botó polsat
void updateClk(const uint8_t btn);
/// @brief (US INTERN) Actualitza el valor de la roda del ratolí actual desde jgame
/// @param dy desplaçament de la rodeta
void updateWheel(const int dy);
/// @brief Torna la posició X actual del ratolí
/// @return valor de la coordenada X del ratolí
const int mouseX();
/// @brief Torna la posició Y actual del ratolí
/// @return valor de la coordenada Y del ratolí
const int mouseY();
/// @brief Determina si el botó del ratolí especificat està sent polsada ara mateix
/// @brief (Equivalent a keydown en tecles)
/// @param btn botó a consultar
/// @return true si està polsat, false si no
const bool mouseBtn(const int btn);
/// @brief Determina si el botó especificat ha sigut polsat, pero no tornarà a ser true fins
/// @brief que no se solte el botó i se torne a polsar (Equivalent a keypress en tecles).
/// @param btn botó a consultar
/// @return true si està polsat, false si no
const bool mouseClk(const int btn);
/// @brief Obté el valor actual de la rodeta del ratolí
/// @return 0 si no es mou, positiu si roda cap amunt, negatiu si roda cap avall
const int mouseWheel();
}