私はアクションを実行したいメソッドの1つから拡張されたCCNodeであるクラスを持っていますが、どれも実行していません:このクラスから:
class GameController : public CCNode
私もこれを持っています:
void GameController::onEnter()
{
CCNode::onEnter();
}
これは私が持っているコードです:
bool GameController::removeFinalGems(CCArray* gemsToRemove)
{
onGemScaleInAnim = CCCallFuncND::create(this,
callfuncND_selector(GameController::OnGemScaleInAnim),gemsToRemove);
onRemoveGemScaleInAnim = CCCallFuncND::create(this,
callfuncND_selector(GameController::OnRemoveGemScaleInAnim),gemsToRemove);
CCSequence* selectedGemScaleInAndRemove = CCSequence::create(onGemScaleInAnim,
onRemoveGemScaleInAnim,
NULL);
bool b = this->isRunning();
CCAction *action = this->runAction(selectedGemScaleInAndRemove);
return true;
}
void GameController::OnGemScaleInAnim(CCNode* sender,void* data)
{
CCArray *gemsToRemove = (CCArray*) data;
}
void GameController::OnRemoveGemScaleInAnim(CCNode* sender,void* data)
{
CCArray *gemsToRemove = (CCArray*) data;
}
また、前と後に実行されているアクションがあるかどうかを確認するチェックを追加しました。その外観は、0 に等しい前と 1 に等しい後です。
int na = this->numberOfRunningActions(); //equal 0
CCAction *action = this->runAction(selectedGemScaleInAndRemove);
int na0 = this->numberOfRunningActions();//equal 1 so there is action
OnRemoveGemScaleInAnim および OnGemScaleInAnim メソッドに到達することはありません