2010-04-30 67 views
0

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

+0

玩家如何移动棋子?看来你不应该开始任何人工智能移动,直到ccTouchesEnded ...但我需要更多地了解你在做什么。 – 2010-04-30 17:35:11

+0

我在ccTouchesEnded中的draw()和player编码中编写了我的AI编码。发生的是,在我的玩家到达他的目的地之前,AI移动开始。 – Mythili 2010-05-03 13:06:20

回答

0

如果您的球员运动受到核心动画的限制,您可以将setAnimationDidStopSelector设置为自定义STOP功能并在那里启动您的AI。

如果你有一个游戏循环与状态,只要补充足够的状态(例如user_move_beganuser_move_endedai_think_beganai_think_endedai_move_began ...)的测序流程。

0

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

您需要在年底CCCallFunc做CCSequence,与你的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()中。