使用可编程混合的人/自动电脑播放器编写4人iPhone游戏应用程序。每个玩家转动后,“游戏视图”应该更新。我一直在使用“setNeedsDisplay”来更新此视图。但是,此视图仅在我的“转弯处理”代码“完成”时更新,并等待人类玩家的触摸再次触发此代码。
对于autoComputer播放器,只有当它再次等待下一个人类播放器时,显示才会更新。因此,对于所有自动计算机玩家游戏,整个游戏在setNeedsDisplay绘制一次之前首先播放(应用程序完成) - 显示最终的游戏视图位置。
是否有一种很好的方法让autoComputer玩家每回合一次以一定的速度更新视图,以便人类玩家可以看到(例如每秒一次)?
提前致谢,
史蒂夫答案 0 :(得分:1)
一般来说,最好在单独的线程上运行游戏代码,然后在主线程上进行显示更新。
然而,在紧要关头,您可以在调用setNeedsDisplay后立即更新显示:
[[NSRunLoop currentRunLoop] acceptInputForMode:NSDefaultRunLoopMode beforeDate:nil];
你必须要小心一点,因为调用也可以触发其他排队的消息。 (例如,在Mac上,分布式对象消息将触发)
答案 1 :(得分:-3)
怎么样
[myView.layer display];