我試圖使用Cocos2dx 3.4製作一款遊戲,並且一切正常(在Eclipse中使用),所以我想在Xcode for iOS上嘗試一下,看看它會在那裏工作,我將它導入Xcode,但是當我嘗試編譯它時,我得到這個錯誤no viable overloaded '='
在listener1->onTouchEnded = [=](Touch* touch, Event* event)
。在Xcode中沒有可行的重載'='錯誤(Eclipse沒有顯示錯誤)
此代碼是從cocos2d的維基EventDispatcher_Mechanism http://www.cocos2d-x.org/wiki/EventDispatcher_Mechanism
我的代碼:
auto listener1 = EventListenerTouchOneByOne::create();
listener1->setSwallowTouches(true);
listener1->onTouchBegan = [](Touch* touch, Event* event) {
auto target = static_cast<Sprite*>(event->getCurrentTarget());
Point locationInNode = target->convertToNodeSpace(touch->getLocation());
Size s = target->getContentSize();
Rect rect = Rect(0, 0, s.width, s.height);
if (rect.containsPoint(locationInNode))
{
target->setOpacity(180);
return true;
}
return false;
};
listener1->onTouchEnded = [=](Touch* touch, Event* event) {
auto target = static_cast<Sprite*>(event->getCurrentTarget());
target->setOpacity(255);
if (target == abc)
{
auto sceneABC = ABCfirst::createScene(mute);
Director::getInstance()->replaceScene(sceneABC);
return true;
}
if (target == n123)
{
auto sceneNumbers = Numbers::createScene(mute);
Director::getInstance()->replaceScene(sceneNumbers);
return true;
}
if (target == lgame)
{
auto scenePWL = PWL::createScene(mute);
Director::getInstance()->replaceScene(scenePWL);
return true;
}
if (target == ngame)
{
auto scenePWN = PWN::createScene(mute);
Director::getInstance()->replaceScene(scenePWN);
return true;
}
if (target == info)
{
auto sceneAbout = About::createScene();
Director::getInstance()->replaceScene(sceneAbout);
return true;
}
};
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener1, abc);
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener1->clone(),
n123);
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener1->clone(),
lgame);
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener1->clone(),
ngame);
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener1->clone(),
info);
我去槽的情侶,人們也有類似問題的網頁,但它並沒有解決我的problem.Compiler設置爲C++ 11和onTouchBegan是bool
其餘的都是void
(我用pyhton腳本編寫了這個項目)。
這是我第一次使用xCode,所以它可能是我忘了一些東西。謝謝你在前進
這樣做的技巧ty這樣一個簡單的錯誤 – MePo 2015-03-19 09:43:43