【发布时间】:2014-08-29 05:28:57
【问题描述】:
我正在尝试实现一种简单的方法来启用和禁用我的班级中的触摸侦听器。我尝试在课堂上编写一个方法:
void HelloWorld::setTouchEnabled(bool enabled)
{
if (enabled)
{
auto _touchListener = EventListenerTouchAllAtOnce::create();
_touchListener->onTouchesBegan = CC_CALLBACK_2(HelloWorld::onTouchesBegan, this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(_touchListener, this);
}
else if (!enabled)
{
_eventDispatcher->removeEventListener(_touchListener);
}
}
我希望能够从此类中的任何其他方法中调用 setTouchEnabled(true) 或 setTouchEnabled(false)。但是,这不起作用,因为_touchListener 在函数结束时被释放。当我尝试在头文件中声明 EventListener *_touchListener 时,我在 XCode 中的这一行收到错误:
_touchListener->onTouchesBegan = CC_CALLBACK_2(HelloWorld::onTouchesBegan, this);
错误表示cocos2d::EventListener 中不存在名为onTouchesBegan 的成员。
我假设必须有一个简单的方法来做到这一点。
【问题讨论】:
-
看看这个:cocos2d-x.org/wiki/…。我认为由于某些类重命名,您会遇到一些 3.2 的编译器错误,但这些很容易解决。
标签: c++ xcode cocos2d-x cocos2d-x-3.0