⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme.txt

📁 MDEngine2plus游戏开发库! 用来开发游戏超级简单!
💻 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 + -