无需用户输入即可更新iPhone视图

时间:2009-10-17 20:52:35

标签: iphone view

使用可编程混合的人/自动电脑播放器编写4人iPhone游戏应用程序。每个玩家转动后,“游戏视图”应该更新。我一直在使用“setNeedsDisplay”来更新此视图。但是,此视图仅在我的“转弯处理”代码“完成”时更新,并等待人类玩家的触摸再次触发此代码。

对于autoComputer播放器,只有当它再次等待下一个人类播放器时,显示才会更新。因此,对于所有自动计算机玩家游戏,整个游戏在setNeedsDisplay绘制一次之前首先播放(应用程序完成) - 显示最终的游戏视图位置。

是否有一种很好的方法让autoComputer玩家每回合一次以一定的速度更新视图,以便人类玩家可以看到(例如每秒一次)?

提前致谢,

史蒂夫

2 个答案:

答案 0 :(得分:1)

一般来说,最好在单独的线程上运行游戏代码,然后在主线程上进行显示更新。

然而,在紧要关头,您可以在调用setNeedsDisplay后立即更新显示:

[[NSRunLoop currentRunLoop] acceptInputForMode:NSDefaultRunLoopMode beforeDate:nil];

你必须要小心一点,因为调用也可以触发其他排队的消息。 (例如,在Mac上,分布式对象消息将触发)

答案 1 :(得分:-3)

怎么样

[myView.layer display];