zoukankan      html  css  js  c++  java
  • cocos2dx笔记

    在windows系统下cocos2d-x如何响应键盘事件?

    在该博文中试了第二种方法,也就是利用GetAsyncKeyState函数检测按键消息,查了msdn之后发现当焦点不在当前程序上或者按键弹起的状态该函数都会返回0.因此没有使用该方法。第一种方法修改框架源文件过多,太麻烦。

    这里找了一个简洁并且准确的方法

    在场景头文件中声明: static void keyboardHook(UINT message, WPARAM wParam, LPARAM lParam);  并根据需要实现该函数
    在场景init中调用: CCDirector::sharedDirector()->getOpenGLView()->setAccelerometerKeyHook(CCSkyLayer::keyboardHook); 设置键盘钩子

    这样就可以在keyboardhook函数中处理按键信息了。

    keyboardHook参数解释

    举个例子当按下方向键->时:

    message的值是:0x0100 也就是winuser.h里定义的WM_KEYDOWN (弹起的时候是WM_KEYUP:0x01001);

    wParam的值是:0x27也就是winuser.h里定义的VK_RIGHT;

    lParam包含的的信息比较多在网上找了一张图片

  • 相关阅读:
    java中栈内存和堆内存的简单理解
    java中构造函数与一般函数的区别

    另一部漫画
    海边的卡夫卡
    11-12
    这篇大概值一百万吧
    我的千岁寒
    11-9
    嗯……………股票已经涨的我不想上班了
  • 原文地址:https://www.cnblogs.com/tranquil/p/3134714.html
Copyright © 2011-2022 走看看