gpt4 book ai didi

objective-c - cocos2d 在不同目标上按顺序运行序列

转载 作者:行者123 更新时间:2023-12-02 15:56:35 26 4
gpt4 key购买 nike

所以,我有一个基本的游戏场景:

某些单位靠近敌方单位,发射弹丸,然后调整敌方单位的生命。我的问题是我不确定如何安排这三个事件依次运行。如果所有这些操作都是在同一个目标上完成的,那么这将非常容易,但是有两个不同的目标。

执行此操作的最佳方法是什么?

代码如下所示:

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com