所以,我有一个基本的游戏场景:
某些单位靠近敌方单位,发射弹丸,然后调整敌方单位的生命。我的问题是我不确定如何安排这三个事件依次运行。如果所有这些操作都是在同一个目标上完成的,那么这将非常容易,但是有两个不同的目标。
执行此操作的最佳方法是什么?
代码如下所示:
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,它看起来仍然相当复杂,因为我认为我必须在所有这些操作之间添加额外的回调,以恢复下一个目标的计划操作。
有什么想法吗?
谢谢!
最佳答案
我会尝试使用CCSequence
[self runAction:[CCSequence actions:
[CCCallFuncO actionWithTarget:unit.sprite selector:@selector(runAction:) object:unitMove],
[CCCallFuncO actionWithTarget:proj.sprite selector:@selector(runAction:) object:projMove],
[CCCallFuncO actionWithTarget:proj.sprite selector:@selector(runAction:) object:removeSprite],
[CCCallFunc actionWithTarget:self selector:@selector(attackDone)],
nil]];
关于objective-c - cocos2d 在不同目标上按顺序运行序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11035114/