Cocos2d iphone 如何推迟我的AI行动

Cocos2d iphone 如何推迟我的AI行动,cocos2d-iphone,Cocos2d Iphone,我在下象棋。一旦我的玩家移动完成(如果他开始从一个地方移动到另一个地方),我的AI移动就开始了(在我的玩家到达目的地之前)。有时我发现现在移动哪个AI硬币很困难。如何延迟。如果您的播放器移动受到核心动画的限制,您可以将setAnimationDidStopSelector设置为自定义停止功能,并在那里启动AI 如果你有一个具有状态的游戏循环,只需添加足够的状态(例如用户移动开始,用户移动结束,人工智能思考开始,人工智能思考结束,人工智能移动开始)来对流程进行排序。我想我明白你现在说的意思了 您需

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

如果您的播放器移动受到核心动画的限制,您可以将
setAnimationDidStopSelector
设置为自定义停止功能,并在那里启动AI


如果你有一个具有状态的游戏循环,只需添加足够的状态(例如
用户移动开始
用户移动结束
人工智能思考开始
人工智能思考结束
人工智能移动开始
)来对流程进行排序。

我想我明白你现在说的意思了

您需要执行一个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()中是令人困惑的。

你的玩家是如何移动棋子的?看起来你不应该开始任何人工智能移动直到ccTouchesEnded。。。但我需要更多地了解你在做什么。我在draw()中编写了我的AI编码,在ccTouchesEnded中编写了玩家编码。发生的是,在我的玩家到达目的地之前,AI移动开始了。