cocos2d-x接受键盘事件,左右键
来源:互联网 发布:linux中vim退出 编辑:程序博客网 时间:2024/04/26 07:32
原文地址: http://www.vktone.com/articles/win32_key_process_in_cocos2dx.html
首先在AppDelegate.cpp加入以下代码,一定要在AppDelegate::applicationDidFinishLaunching()上,声明用的。
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)HelloWorld *g_layer;void Win32SetKeyLayer(HelloWorld *layer){g_layer = layer;}void Win32KeyHook( UINT message,WPARAM wParam, LPARAM lParam ){CCLog("Win32KeyHook message %d wParam %d lParam %d", message, wParam, lParam);if (g_layer)g_layer->onWin32KeyEvent(message, wParam, lParam);}#endif
在AppDelegate::applicationDidFinishLaunching()中
bool AppDelegate::applicationDidFinishLaunching() { // initialize director CCDirector* pDirector = CCDirector::sharedDirector(); CCEGLView* pEGLView = CCEGLView::sharedOpenGLView();#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)// 2012.11.07 加入键盘处理代码pEGLView->setAccelerometerKeyHook(Win32KeyHook);///////////////////////////////////#endif // CC_PLATFORM_WIN32 pDirector->setOpenGLView(pEGLView); // turn on display FPS pDirector->setDisplayStats(true); // set FPS. the default value is 1.0/60 if you don't call this pDirector->setAnimationInterval(1.0 / 60); // create a scene. it's an autorelease object CCScene *pScene = HelloWorld::scene(); // run pDirector->runWithScene(pScene); return true;}
在HelloWorldScene.cpp中
CCScene* HelloWorld::scene(){ // 'scene' is an autorelease object CCScene *scene = CCScene::create(); // 'layer' is an autorelease object HelloWorld *layer = HelloWorld::create(); // add layer as a child to scene scene->addChild(layer);extern void Win32SetKeyLayer(HelloWorld *layer);Win32SetKeyLayer(layer); // return the scene return scene;}
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)void HelloWorld::onWin32KeyEvent( UINT message,WPARAM wParam, LPARAM lParam ){ CCLog("onWin32KeyEvent message %d wParam %d lParam %d", message, wParam, lParam); /* // Up Win32KeyHook message 256 wParam 38 lParam 21495809 onWin32KeyEvent message 256 wParam 38 lParam 21495809 Win32KeyHook message 257 wParam 38 lParam -1052246015 onWin32KeyEvent message 257 wParam 38 lParam -1052246015 // Down Win32KeyHook message 256 wParam 40 lParam 22020097 onWin32KeyEvent message 256 wParam 40 lParam 22020097 Win32KeyHook message 257 wParam 40 lParam -1051721727 onWin32KeyEvent message 257 wParam 40 lParam -1051721727 // Left Win32KeyHook message 256 wParam 37 lParam 21692417 onWin32KeyEvent message 256 wParam 37 lParam 21692417 Win32KeyHook message 257 wParam 37 lParam -1052049407 onWin32KeyEvent message 257 wParam 37 lParam -1052049407 // Right Win32KeyHook message 256 wParam 39 lParam 21823489 onWin32KeyEvent message 256 wParam 39 lParam 21823489 Win32KeyHook message 257 wParam 39 lParam -1051918335 onWin32KeyEvent message 257 wParam 39 lParam -1051918335 */ if (message == 256) { switch (wParam) { case 38: moveHero(1); break; case 40: moveHero(2); break; case 37: moveHero(3); break; case 39: moveHero(4); break; } } else if (message == 257) { }}#endif
void HelloWorld::moveHero( int diraction ){CCLog("moveHero: %d",diraction);}
//现在你就可以上下左右键,看输出的值。
- cocos2d-x接受键盘事件,左右键
- cocos2d-x接受键盘事件,左右键, 多点触摸
- cocos2d-x 输入框升级版 通过鼠标点击事件和键盘左右键移动光标
- HTML5-事件-键盘-上下左右键
- cocos2d-x win32键盘事件
- cocos2d-x 3.x相应键盘事件
- C#接受上下左右键
- cocos2d-x让win32响应键盘事件
- Cocos2d-x Win32键盘模拟触摸事件
- Cocos2d-x Win32键盘模拟触摸事件
- Cocos2d-x--响应Windows键盘事件
- ios cocos2d-x 接受多点触控事件
- 自动点击键盘左右键
- extjs4 treepanel左右键事件
- cocos2d-x window实现鼠标移动 键盘事件
- 响应键盘的上下左右键
- Cocos2d-x键盘按键
- Cocos2d-JS键盘事件
- 定位到驱动中的分派函数
- hive 报错 "Too many connections"
- 基于opencv的小波变换
- 给表格增加导出excel功能
- winphone输入范围和文本框
- cocos2d-x接受键盘事件,左右键
- 社会化品牌:移动是趋势
- 深入理解java虚拟机
- Ubuntu Linux下为PHP5安装cURL
- c#中跨窗体调用控件
- 设置表格单元格只能输入小数
- 二叉树的非递归先序,中序,后序遍历
- 项目开发流程控制
- ios7毛玻璃效果实现