関数は適切に調整されていませんが、「機能します」(少なくともAndroidでは)
void HelloWorld::continueshipMovement() {
CCNode *node = this->getChildByTag(asterioTag);
CCSprite *sprite = (CCSprite*)node;
if (trafico.size() < 0 or sprite->getActionByTag(actionTag)) {
return;
}
std::pair<float, float> valueOfPt = trafico.back();
trafico.pop_back();
CCPoint newPt = ccp(valueOfPt.first, valueOfPt.second);
float distace = ccpDistance(sprite->getPosition(), newPt);
float duration = distace / ShipSpeed;
CCMoveTo *move = CCMoveTo::create(duration, newPt);
CCSequence *moveseq = CCSequence::createWithTwoActions(move, CCCallFunc::create(this, callfunc_selector(HelloWorld::continueshipMovement)));
moveseq->setTag(actionTag);
sprite->runAction(moveseq);
}
画面をタッチすると IOS のアプリがクラッシュし、CCNode から CCSprite にキャストすると失敗するようです。
Xcodeが示すエラーは次のとおりです。