如何在 cocos2dx 中使用加速度计
How to use Accelerometer in cocos2dx
我一直在尝试让加速器在 cocos2d-x c++ 中工作。我试图将这个功能添加到我的场景中,我的很多谷歌搜索结果都说我应该:
virtual void didAccelerate(Acceleration *acceleration);
但是,这确实给了我一个错误,说我正在覆盖最后一个函数。然后我找到了如何使用EventDispatcher的东西。
auto accListener = EventListenerAcceleration::create(CC_CALLBACK_2(MainScene::accelerated, this));
getEventDispatcher()->addEventListenerWithSceneGraphPriority(accListener, this);
在这两个函数中,我之前在场景的 init 函数中调用了这个函数:
setAccelerometerEnabled(true);
我完全没有想法,我需要帮助。在第二个"方法"上,它编译了,但我的加速函数从未被调用过。
提前谢谢你!
我正在使用Android,所以也许我需要在AndroidManifest中编辑某些内容?
cocos 论坛上的家伙将我链接到此:科科斯文档
如您所见,正确的方法是使用前面所述的事件侦听器方法。但是您需要致电
Device::setAccelerometerEnabled(true);
叫
setAccelerometerEnabled(true);
由于场景的 init 不起作用,您需要在"设备"上调用静态方法。
所以这是你如何做到的。
Device::setAccelerometerEnabled(true);
auto accListener = EventListenerAcceleration::create(CC_CALLBACK_2(MainScene::accelerated, this));
getEventDispatcher()->addEventListenerWithSceneGraphPriority(accListener, this);
其中加速 is 采用以下参数:
void accelerated(Acceleration *acceleration, Event *event);
当然,这个函数可以调用任何东西,因为 EventListener 需要一个函数指针。
>Tritzium回答得对。只是想指出:您不会在模拟器中获得加速器事件,您需要一个设备。
相关文章:
- 计算数组c++的平均值
- 在函数中使用 const int size 参数创建数组会在 Visual Studio 中抛出错误 C++:表达式的计
- 将 IPv6 支持添加到雨量计
- 在 Cocos2dx 中初始化粒子效果后的警告 - "libpng warning: iCCP: known incorrect sRGB profile"
- MFC:你能在CDateTimeCtrl中改变自旋的加速度吗?
- 如何获取加速度值?
- 无法在 Cocos2dx 中使用受密码保护的 zip 文件
- 当文本以分量计开头时,将文本C++到 std::vector 中
- 使用阈值进行加速度计振动检测
- 返回布尔值在 cocos2dx 的 onTouchBegan() 中是什么意思?
- cocos2dx 将值强制转换为属性字符串
- 如何使用 c++ 在 cocos2dx 中定义非静态方法
- Cocos2dx: 无法存储数据?
- onTouch开始不工作cocos2dx
- 使用 Qt c++ 在 Windows Surface Pro 上获取加速度计数据
- Sprite套件 - 播放器使用加速度计的屏幕
- 设备陀螺仪(加速度计)在 Cocos2dx-2.2.6 中无法使用 -ObjC 链接器标志
- 无法访问在类"Windows::D evices::传感器::加速度计"中声明的私有成员
- 如何在 cocos2dx 中使用加速度计
- 加速度计"高度变化"代码 PIC