1

アリが巣を離れるという、自分のゲームのアニメーションを作成しようとしています。巣を右下に下向きに下向きに下ろしてから、もう一度真っ直ぐに見る必要があります。

2つのアクションシーケンスを作成しました。1つは移動用、もう1つは回転用で、CCSpawnにまとめました。移動アクションのみを実行すると正常に動作しますが、アクションを一緒に実行すると、最後にスプライトが元の位置に戻ります。

何が起こっているのかわかりません。助けてもらえますか?

CCLayer * gameLayer = CCLayer::create();

Ant* ant = Ant::create(); // Ant is a CCSprite

CCPoint nestp = ccp(45, 172);

ant->setPosition(nestp);

gameLayer->addChild(ant);

addChild(gameLayer);

    // ant walking animation
CCAnimate * antWalk = CCAnimate::create(_antWalk);
ant->runAction(CCRepeatForever::create(antWalk));   

CCPoint p1 = ccp(55, 165), p2 = ccp(75,160), p3 = ccp(90,110), p4 = ccp(105, 50);   

CCSequence *moveOut = (CCSequence *)CCSequence::create(CCMoveTo::create(0.3, p1), CCMoveTo::create(0.3, p2), CCMoveTo::create(0.7, p3), CCMoveTo::create(0.7, p4), NULL);

CCSequence *rotateOut = (CCSequence *) CCSequence::create(CCRotateTo::create(0.5, 50), CCDelayTime::create(1), CCRotateTo::create(0.5, 0));

CCSpawn *leaveNest = (CCSpawn *)CCSpawn::create(moveOut, rotateOut, NULL);

ant->runAction(leaveNest);
4

1 に答える 1

1

自分の質問を確認したところ、回転シーケンスの最後にNULLを追加するのを忘れていたことがわかりました。次のようになります。

CCSequence *rotateOut = (CCSequence *) CCSequence::create(CCRotateTo::create(0.5, 50), CCDelayTime::create(1), CCRotateTo::create(0.5, 0), NULL);

エラーがなかったので、この動作を期待していなかったので、見つけるのに非常に時間がかかりましたが、今では正常に動作しています!同じ問題で走っている人の助けになることを願っています。

于 2012-10-15T12:47:05.880 に答える