ShitEngine
基于 C++20 与 SDL3 的轻量级 2D 游戏引擎
载入中...
搜索中...
未找到
Input类 参考

输入管理(单例) 更多...

#include <Input.h>

Public 成员函数

bool isKeyDown (KeyCode code) const
bool isKeyPressed (KeyCode code) const
bool isKeyReleased (KeyCode code) const
bool isMouseButtonDown (MouseButton code) const
bool isMouseButtonPressed (MouseButton code) const
bool isMouseButtonReleased (MouseButton code) const
Vector2 getMousePosition () const
Vector2 getMouseScroll () const
bool isActionDown (const std::string &action) const
bool isActionPressed (const std::string &action) const
bool isActionReleased (const std::string &action) const
float getAxis (const std::string &axis) const
void initMappings ()
 Config 预编译动作/轴绑定(Config::Init 之后调用)
void update ()
 帧末:current → previous
void handleEvent (const SDL_Event &event)

静态 Public 成员函数

static Input & GetInstance ()
static bool IsKeyDown (KeyCode code)
static bool IsKeyPressed (KeyCode code)
static bool IsKeyReleased (KeyCode code)
static bool IsMouseButtonDown (MouseButton code)
static bool IsMouseButtonPressed (MouseButton code)
static bool IsMouseButtonReleased (MouseButton code)
static Vector2 GetMousePosition ()
static Vector2 GetMouseScroll ()
static bool IsActionDown (const std::string &action)
static bool IsActionPressed (const std::string &action)
static bool IsActionReleased (const std::string &action)
static float GetAxis (const std::string &axis)
static void InitMappings ()
static void Update ()
static void HandleEvent (const SDL_Event &event)

友元

class EngineContext

详细描述

输入管理(单例)

同时提供两层 API(类似 Unity / Godot):

  1. 底层键鼠 Input::IsKeyDown(KeyCode::Space) Input::IsMouseButtonPressed(MouseButton::Left)
  2. 动作 / 轴映射(配置在 settings.json 的 inputMappings) Input::IsActionDown("Jump") Input::IsActionPressed("Jump") Input::IsActionReleased("Jump") Input::GetAxis("Horizontal") // -1 / 0 / 1

命名约定(与 Unity 不同,请注意): Down = 刚按下(仅一帧) Pressed = 持续按住 Released = 刚松开(仅一帧)

键名使用 SDL 官方 scancode 名("Space"/"A"/"Left Shift"), 也接受无空格别名("LeftShift" → "Left Shift")。 鼠标:MouseButton.Left / Right / Middle / XButton1 / XButton2

成员函数说明

◆ GetAxis()

float GetAxis ( const std::string & axis)
inlinestatic

◆ getAxis()

float getAxis ( const std::string & axis) const

◆ GetInstance()

Input & GetInstance ( )
static

◆ GetMousePosition()

Vector2 GetMousePosition ( )
inlinestatic

◆ getMousePosition()

Vector2 getMousePosition ( ) const

◆ GetMouseScroll()

Vector2 GetMouseScroll ( )
inlinestatic

◆ getMouseScroll()

Vector2 getMouseScroll ( ) const

◆ HandleEvent()

void HandleEvent ( const SDL_Event & event)
inlinestatic

◆ handleEvent()

void handleEvent ( const SDL_Event & event)

◆ InitMappings()

void InitMappings ( )
inlinestatic

◆ initMappings()

void initMappings ( )

Config 预编译动作/轴绑定(Config::Init 之后调用)

◆ IsActionDown()

bool IsActionDown ( const std::string & action)
inlinestatic

◆ isActionDown()

bool isActionDown ( const std::string & action) const

◆ IsActionPressed()

bool IsActionPressed ( const std::string & action)
inlinestatic

◆ isActionPressed()

bool isActionPressed ( const std::string & action) const

◆ IsActionReleased()

bool IsActionReleased ( const std::string & action)
inlinestatic

◆ isActionReleased()

bool isActionReleased ( const std::string & action) const

◆ IsKeyDown()

bool IsKeyDown ( KeyCode code)
inlinestatic

◆ isKeyDown()

bool isKeyDown ( KeyCode code) const

◆ IsKeyPressed()

bool IsKeyPressed ( KeyCode code)
inlinestatic

◆ isKeyPressed()

bool isKeyPressed ( KeyCode code) const

◆ IsKeyReleased()

bool IsKeyReleased ( KeyCode code)
inlinestatic

◆ isKeyReleased()

bool isKeyReleased ( KeyCode code) const

◆ IsMouseButtonDown()

bool IsMouseButtonDown ( MouseButton code)
inlinestatic

◆ isMouseButtonDown()

bool isMouseButtonDown ( MouseButton code) const

◆ IsMouseButtonPressed()

bool IsMouseButtonPressed ( MouseButton code)
inlinestatic

◆ isMouseButtonPressed()

bool isMouseButtonPressed ( MouseButton code) const

◆ IsMouseButtonReleased()

bool IsMouseButtonReleased ( MouseButton code)
inlinestatic

◆ isMouseButtonReleased()

bool isMouseButtonReleased ( MouseButton code) const

◆ Update()

void Update ( )
inlinestatic

◆ update()

void update ( )

帧末:current → previous

◆ EngineContext

friend class EngineContext
friend

该类的文档由以下文件生成: