如何在cocos2dx中使用Accelerometer

时间:2016-03-16 17:16:58

标签: c++ cocos2d-x accelerometer cocos2d-android

我一直试图让加速器在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中编辑一些内容吗?

1 个答案:

答案 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接受函数指针时,可以调用此函数。