我正在开发iOS游戏,我必须安排一个NSMutableArray addobject才能看到我的动画。
[monster stopAllActions];
[monster startDeathAction];
[monsterToDelete addObject: lilMonster];
我停止对怪物对象的所有操作,然后启动死亡动画,然后我将其插入数组中以删除它。事实是,我无法看到动画,因为它瞬间删除了怪物。
我一直在尝试安排addObject,但我找不到办法。
我可以帮到你吗?谢谢:))
简而言之:我想等动画完成[array addObject:object];
PS:我没有提到它。我正在使用Cocos2d答案 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];
}