前段时间花了点时间研究directx9,写了点代码,在这里做个记录。
以下是自己封装的keyboard的代码:
cKbState类,保存每次查询的键盘按键信息,提供某个键被按下等查询。
首先是cKbState.h
cKbState.cpp
cKeyboard类,directxinput的一些初始化和释放资源的工作在这里做。
cKeyboard.h
cKeyboard.cpp
使用方法:
定义全局变量:
//键盘
cKeyboard g_keyboard;
//键盘状态
cKbState g_kbstate;
初始化:
g_keyboard.Init_Keyboard(inst,hwnd);//inst为程序实例,hwnd为窗口句柄
使用:如
g_kbstate=g_keyboard.Get_kbState();
if(g_kbstate.Is_KeyPressed(DIK_LEFT) )
g_camera.yaw(-1.0f * time_delta);
释放:
g_keyboard.Release();
解决切换活动窗口后重新获取键盘资源的问题,需要在窗口过程函数里做设置,代码如下:
需要处理WM_ACTIVATE消息时重新请求键盘资源。