我一直在尝试让加速器在 cocos2d-x c++ 中工作。 我试图将这个功能添加到我的场景中,我的很多 Google 搜索结果都说我应该这样做:
virtual void didAccelerate(Acceleration *acceleration);
然而,这确实给我一个错误,说我正在覆盖最终功能。 然后我找到了如何为它使用 EventDispatcher 东西。
auto accListener = EventListenerAcceleration::create(CC_CALLBACK_2(MainScene::accelerated, this));
getEventDispatcher()->addEventListenerWithSceneGraphPriority(accListener, this);
在这两个中,我都在场景的初始化函数中调用了这个函数:
setAccelerometerEnabled(true);
我完全没有想法,我需要帮助。在它编译的第二个“方法”中,但从未调用过我的加速函数。
先感谢您!
我使用的是 Android,所以我可能需要在 AndroidManifest 中编辑一些内容?
最佳答案
cocos 论坛的人把我和这个联系起来: Cocos docs
如您所见,正确的方法是使用前面描述的 EventListener 方法。但是你需要打电话
Device::setAccelerometerEnabled(true);
打电话
setAccelerometerEnabled(true);
从场景的初始化不起作用,你需要调用'Device'上的静态方法。
所以这就是你如何做的。
Device::setAccelerometerEnabled(true);
auto accListener = EventListenerAcceleration::create(CC_CALLBACK_2(MainScene::accelerated, this));
getEventDispatcher()->addEventListenerWithSceneGraphPriority(accListener, this);
加速的地方采用这些参数:
void accelerated(Acceleration *acceleration, Event *event);
当然这个函数可以被称为任何东西,因为 EventListener 有一个函数指针。
关于c++ - cocos2dx中加速度计的使用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36042583/