2014-01-19 3 views
4

Мне нужно преобразовать объектный C++ в C++ 11. Я придерживался следующего синтаксиса. Я указал в testcpp и попробую следующий синтаксис.Как вызвать функцию callfunc в cocos2dx 3.0

Вот код, который я пробовал:

this->runAction 
(
Sequence::create 
(
    blink, 
    CallFunc::create(CC_CALLBACK_0(Hero::stopBlinking, NULL)), -> issue this line. 
    NULL 
) 
); 

Это показывает ошибки "no matching function for call to 'bind'" in "CallFunc::create". Может ли один помочь или помочь мне.

+0

Вам нужно изменить NULL на объект, к которому вы хотите вызвать метод. – TigerCoding

ответ

2

Поскольку у меня была та же проблема, что может Помогите кому-нибудь

CallFunc::create(std::bind(&Hero::stopBlinking,this)); 
1

Вам нужно сделать следующее

FiniteTimeAction *callAct = CallFunc::create(CC_CALLBACK_0(Hero::stopBlinking, this)); 
    Sequence* seq = Sequence::create(blink,callAct ,NULL); 
    this->runAction(seq); 
1

Еще один способ с помощью лямбда-функциям:

CallFuncN *callFunc = CallFuncN::create([&] (Node* node) { 
    // cast node to Hero and do what you need with it 
}); 

Но, конечно, это больше подходит для короткого блока кода, как:

node->removeFromParent(); 
Смежные вопросы