2010-04-30 21 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()中。