在NSMutableArray中安排插入

时间:2012-03-21 14:22:14

标签: iphone objective-c ios cocos2d-iphone nsmutablearray

我正在开发iOS游戏,我必须安排一个NSMutableArray addobject才能看到我的动画。

[monster stopAllActions];
[monster startDeathAction];
[monsterToDelete addObject: lilMonster];

我停止对怪物对象的所有操作,然后启动死亡动画,然后我将其插入数组中以删除它。事实是,我无法看到动画,因为它瞬间删除了怪物。

我一直在尝试安排addObject,但我找不到办法。

我可以帮到你吗?谢谢:))

简而言之:我想等动画完成[array addObject:object];

PS:我没有提到它。我正在使用Cocos2d

3 个答案:

答案 0 :(得分:0)

我不清楚您是如何执行动画的,但如果您使用的是UIView方法之一,例如:

+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion

你可以使用完成块删除你的怪物。

答案 1 :(得分:0)

如果动画结束时有事件,则可以尝试注册将对象添加到数组的委托函数。

这样就可以在完成播放动画后立即删除对象。

答案 2 :(得分:0)

这里有两个选项:

选项1:向怪物添加一个变量,该变量基本上可以判断死亡动作是否已经完成。如果要删除它,请将其设置为true。你还必须修改清理monstersToDelete数组的代码,只删除完成死亡操作的怪物。

选项2:当死亡动作完成时,让怪物召唤一名代表。类似的东西:

- (void) startDeathAction : (id) target : (SEL) sel
{
   Action* myCurrentAction = ...// your death action here
   [self runAction:[CCSequenceAction actionWithActions: myCurrentAction,[CCCallFunc actionWithTarget: target selector:sel ]];
}

并在您开始死亡操作的代码中添加

[monster stopAllActions];
[monster startDeathAction: self : @selector(onMonsterDeath)];
...
- (void) onMonsterDeath
{
    [monsterToDelete addObject: lilMonster];
}