我在玩象棋之类的游戏。一旦我的玩家移动完成(如果他开始从一个地方移动到另一个地方),我的AI移动就开始了(在我的玩家到达他的目的地之前)。有时我发现现在移动哪枚AI硬币很困难。如何延缓它。
发布于 2010-04-30 15:30:56
如果你的玩家移动受到核心动画的限制,你可以将setAnimationDidStopSelector设置为自定义的停止功能,并在那里启动你的AI。
如果你有一个带有状态的游戏循环,只需添加足够的状态(例如user_move_began,user_move_ended,ai_think_began,ai_think_ended,ai_move_began ..)对流程进行排序。
发布于 2010-05-06 04:12:13
我想我现在明白你在说什么了。
你需要做一个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()中。
https://stackoverflow.com/questions/2742916
复制相似问题