8#include <math/math.hpp>
21 using handle_type =
unsigned short;
25 enum class Button : uint8_t;
30 Gamepad(handle_type handle = 0);
49 Vector2f
get(
Thumb thumb)
const noexcept;
122 bool operator==(
const Gamepad&)
const;
125 static void deinit();
130 float left_thumb_deadzone_ = 0.1f;
131 float right_thumb_deadzone_ = 0.1f;
132 float trigger_threshold_ = 0.01f;
134 unsigned char buttons_[15] = {};
游戏手柄.
Definition: Gamepad.h:19
Vector2f get_raw(Thumb thumb) const noexcept
获取原始摇杆数据.
Definition: Gamepad.cpp:73
bool load_mappings_db(const std::filesystem::path &path)
加载 SDL 按键映射数据库.
Definition: Gamepad.cpp:129
void set_vibration(float leftSpeed, float rightSpeed)
设置震动反馈.
Definition: Gamepad.cpp:105
~Gamepad()
默认析构函数.
Definition: Gamepad.cpp:28
std::string_view get_name() const
获取设备名称. 人类可读的, UTF-8 编码.
Definition: Gamepad.cpp:119
bool is_connected() const
检查手柄是否处于连接状态.
Definition: Gamepad.cpp:124
Vector2f get(Thumb thumb) const noexcept
获取摇杆数据.
Definition: Gamepad.cpp:52
void update()
更新数据.
Definition: Gamepad.cpp:33
Button
手柄按键.
Definition: Gamepad.h:160
Thumb
手柄摇杆.
Definition: Gamepad.h:142
Trigger
手柄线性按键.
Definition: Gamepad.h:151