だから、私は基本的なゲームシーンラリオを持っています:
一部のユニットは敵ユニットに近づき、発射物を発射してから、敵ユニットのライフを調整します。私の問題は、これら3つのイベントを次々に実行するようにスケジュールする方法がわからないことです。これらすべてのアクションが同じターゲットで実行された場合、これは非常に簡単ですが、2つの異なるターゲットがあります。
これを行うための最良のアプローチは何でしょうか?
コードは次のようになります。
Unit* unit = [self getActiveUnit];
Unit* enemy = [self getEnemyInRange:unit];
CGpoint A = unit.sprite.position;
CGPoint B = [self getPositionClose:enemy for:unit];
CCSequence* unitMove = [self generateUnitMoveFrom:A to:B];
Projectile* proj = [self generateProjectile];
CCSequence* projMove = [self generateProjMoveFrom:A to:B];
CCSequence* attackDone = [self generateAttackDoneFor:unit enemy:enemy];
// This is the part that i don't know how to do
// Execute these in order and sequentially, not at the same time
[unit.sprite runAction:unitMove];
[proj.sprite runAction:projMove];
[proj.sprite runAction:removeSprite];
[self runAction:attackDone];
これを行うための最良のアプローチは何ですか?CCActionManagerを使用しても、次のターゲットのスケジュールされたアクションを再開するには、これらすべてのアクションの間にコールバックを追加する必要があると思うので、それでもかなり複雑に見えます。
何か案は?
ありがとう!