📄 readme.txt
字号:
简介
MDInput是MDEngine的输入部分组件,负责处理(捕获)用户的输入部分(控制对象),如鼠标、键盘、游戏手柄。
特点:
1.使用简单
2.支持多种设备同时使用(可以支持用户同时使用鼠标,键盘,游戏手柄)
3.支持跨设备检索()
支持平台:
VC++6,Microsoft Windows system
函数接口:
CMD_Input();
初始化一个CMD_Input的实例。
void EnableShowErrorMSG(bool bshowerr); // 允许or禁止弹出错误信息
参数:当出现错误时是否需要弹出一个错误警告窗口。
bshowerr=true - 弹出错误警告窗口
bshowerr=false - 不要弹出
返回值:无
说明:当你进行一个CMD_Input的操作的时候(比如:执行一个Create),可能产生一个错误,例如创建失败,这时MDInput会记录一个错误信息,如果此时EnableShowErrorMSG设置成true,系统就会弹出一个警告窗口,告诉你出错了。如果此时EnableShowErrorMSG是false,系统不会弹出一个警告窗口,但是你可以使用GetErrorCode来检索这个错误代码。
DWORD GetErrCode(void); // 取得当前的错误代码
bool Create(HWND hwnd, BYTE input); // 创建MDInput设备
参数:窗口句柄,立即创建操作设备(INPUT_NONE 或者 INPUT_MOUSE, INPUT_KEYBOARD, INPUT_JOYSTICK的任意组合)
例如,不想创建立即创建设备可以传递INPUT_NONE,如果想立即同时创建键盘和手柄。可以传递INPUT_KEYBOARD|INPUT_JOYSTICK
注意:用此设备创建控制对象不能知道控制对象创建的成功与否
返回值:MDInput的创建结果(成功:true,失败:false)
说明:用此设备创建控制对象不能知道控制对象创建的成功与否,如果需要获取设备的创建结果可以调用CreateMouse(),CreateKeyboard(),CreateJoystick()函数。
bool Update(void); // 更新、检索所有已成功创建的设备的状态
bool IsInput(WORD btn,BYTE mode); // 检测用户是否按下了制定的键
参数:要检测的键的代码,检测模式(KD_ALWAYS,KD_UP,KD_DOWN)
返回指:如果该按键被按下则返回true,否则返回false
说明:不仅仅能检测键盘,也同时能检测鼠标、游戏手柄。是一个跨设备检索
示例:bool kd = IsInput(DIK_A,KD_ALWAYS); // 只要键盘A键被按着,就返回true
bool kd = IsInput(DIM_BUTTON0,KD_UP); // 当鼠标按下后被松开的瞬间该函数返回true
bool kd = IsInput(DIJ_LX,KD_DOWN); // 当鼠标按下的瞬间该函数返回true
void Acquire(bool acquire); // 使设备获得、失去对鼠标、键盘、游戏手柄的操作权
参数:获取(true)/失去(false)对鼠标、键盘、游戏手柄的操作权
返回值:无返回值
说明:当程序的焦点失去后,引擎将失去操作权,因此在WM_ACTIVE消息后应该调用该函数来重新取得操作权
void Free(); // 释放设备
LPDIRECTINPUT7 *GetDIObject(void); // 取得DirectInput7对象
bool CreateMouse(DWORD dwFlags=DISCL_NONEXCLUSIVE | DISCL_FOREGROUND); // 以指定方式建立鼠标设备
void FreeMouse(void); // 释放鼠标设备
void AcquireMouse(bool acqm); // 锁定、解锁鼠标设备
bool UpdateMouse(void); // 检索更新鼠标的状态
int GetMouseLXY(WORD ax); // 取得鼠标的X或Y轴的偏移量
bool IsMouseDown(WORD btn,BYTE mode); // 检测鼠标的某个按键是否被按下
WORD GetNextMouseDown(BYTE mode,bool bAxis=false);// 取得下一个鼠标上有动作的键值
LPDIRECTINPUTDEVICE7 *GetMouseObject(void); // 取得鼠标的DIRECTINPUTDEVICE7设备
bool CreateKeyboard(DWORD dwFlags=DISCL_NONEXCLUSIVE | DISCL_FOREGROUND); // 以指定方式建立键盘设备
void FreeKeyboard(void); // 释放键盘设备
void AcquireKeyboard(bool acqm); // 锁定、解锁键盘设备
bool UpdateKeyboard(void); // 检索更新键盘的状态
bool IsKeyDown(WORD key,BYTE mode); // 检测指定的键是否被按下
WORD GetNextKeyDown(BYTE mode); // 取得下一个键盘上有动作的键值
bool CreateJoystick(DWORD dwFlags=DISCL_EXCLUSIVE|DISCL_FOREGROUND); // 以指定方式建立手柄设备
void SetDeadzone(int ratio=5000); // 设置手柄的精确度(ratio越大精确度越低)
bool IsJoystickExist(void); // 检索游戏手柄是否存在
void FreeJoystick(void); // 释放手柄设备
void AcquireJoystick(bool acqm); // 锁定、释放手柄设备
bool UpdateJoystick(void); // 检索更新手柄的状态
int GetJoystickLXY(WORD ax); // 取得手柄的X或Y或Z轴偏移量
bool IsJoystickDown(WORD btn,BYTE mode); // 检测指定的按钮是否被按下
WORD GetNextJoystickDown(BYTE mode,bool bAxis=false); // 取得当前用户按下的全部按钮
LPDIRECTINPUTDEVICE7 *GetJoystickObject(void); // 取得手柄的DIRECTINPUTDEVICE7
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -