c++ - cocos2dx中加速度计的使用方法

标签 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 中编辑一些内容?

最佳答案

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/

相关文章:

c++ - 指向成员变量的指针与通过指针传递

c++ - cocos2d-x 3 添加 Sprite 到布局

android - 从 ListPreference 中删除数组项

java - 将 AdView 移至底部,Cocos2dx Activity

ios - 确定对象是否被触摸/轻敲

android - 我在后台的 IntentService 如何始终监听设备的震动?

android - 手机找不到 Sensor.TYPE_LINEAR_ACCELERATION 的传感器

c++ - 对 `mtm::operator<<(std::ostream&, mtm::DateWrap const&)' 的 undefined reference

c++ - 在 C++ 中管理我的对象时内存分配的逻辑问题

c++ - 如何正确替换字符串 C++ 中的字符?