如何延迟我的AI动作

时间:2010-04-30 07:23:54

标签: cocos2d-iphone

我正在做象棋这样的游戏。一旦我的玩家移动完成(如果他开始从一个地方移动到另一个地方),我的AI移动就开始了(在我的玩家到达目的地之前)。有时我发现现在移动的AI硬币很难。如何延迟它。

2 个答案:

答案 0 :(得分:0)

如果您的播放器移动受 Core Animation 限制,您可以将setAnimationDidStopSelector设置为自定义STOP功能并在那里启动AI。

如果你有一个带有状态的游戏循环,只需添加足够的状态(例如user_move_beganuser_move_endedai_think_beganai_think_ended,{ {1}} ..)对流程进行排序。

答案 1 :(得分:0)

我想我明白你现在在说什么。

您需要执行CCSequence,最后在CCCallFunc中调用AI函数:

CCSequence *playerMove = [CCSequence actions: 
                          [CCMoveTo actionWithDuration: 0.4f position: CGPointMake(10,10)],
                          [CCCallFunc actionWithTarget: self selector: @selector(doAIstuff)],
                          nil];

[playerSprite runAction: playerMove];

您需要让AI成为可调用的函数(即doAIstuff)。你说代码在draw()中是令人困惑的。