#include <windows.h>
#define KEY_DOWN(vk_code) (GetAsyncKeyState(vk_code) & 0x8000 ? 1 : 0)
#define KEY_UP(vk_code) (GetAsyncKeyState(vk_code) & 0x8000 ? 0 : 1)
if( KEY_DOWN( VK_DOWN ) )
{
SceneGaming * scene = (SceneGaming *)SceneManager::getSingleton().getGamingScene();
LayerGamingPause * pLayerGamingPause = scene->getLayerPause();
pLayerGamingPause->setVisible( true );
// scene->pauseSchedulerAndActions();
}
另一种方式:
在初始化时先注册回调:
CCDirector::sharedDirector()->getOpenGLView()->setAccelerometerKeyHook( XXX::keyboardHook );
XXX:keyboardHook实现如下:
void XXX::keyboardHook( UINT message,WPARAM wParam, LPARAM lParam )
{
switch (message)
{
case WM_KEYDOWN:
return;
case WM_KEYUP:
// wParam 即为键盘字母码,在此处理即可
return;
}
}