我一直试图让加速器在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中编辑一些内容吗?
答案 0 :(得分:2)
cocos论坛上的人把我联系到了这个: Cocos docs
正如您所看到的,正确的方法是使用前面描述的EventListener方法。但是你需要打电话
Device::setAccelerometerEnabled(true);
致电
setAccelerometerEnabled(true);
从现场初始化开始不起作用,您需要在“设备”上调用静态方法。
所以这就是你如何做到的。
Device::setAccelerometerEnabled(true);
auto accListener = EventListenerAcceleration::create(CC_CALLBACK_2(MainScene::accelerated, this));
getEventDispatcher()->addEventListenerWithSceneGraphPriority(accListener, this);
加速时采用以下参数:
void accelerated(Acceleration *acceleration, Event *event);
当然,当EventListener接受函数指针时,可以调用此函数。