Iphone 设备上的NSTimer比模拟器中的慢
我是iPhone开发新手。我在游戏循环中使用了Iphone 设备上的NSTimer比模拟器中的慢,iphone,objective-c,core-graphics,Iphone,Objective C,Core Graphics,我是iPhone开发新手。我在游戏循环中使用了[NSTimer scheduledTimerWithTimeInterval:0.01]。游戏包含drawscreen功能,我使用cgContextCliptRect剪辑大图像以制作动画 但0.01秒的速度仅在模拟器中工作,而不是在设备上。我怎样才能克服这个问题 计时器代码在控制器视图中显示为 (void)viewDidLoad { GameView *main = [[GameView alloc] initWithFrame:
[NSTimer scheduledTimerWithTimeInterval:0.01]
。游戏包含drawscreen功能,我使用cgContextCliptRect
剪辑大图像以制作动画
但0.01秒的速度仅在模拟器中工作,而不是在设备上。我怎样才能克服这个问题
计时器代码在控制器视图中显示为
(void)viewDidLoad {
GameView *main = [[GameView alloc]
initWithFrame:[[UIScreen mainScreen] applicationFrame]];
main.backgroundColor = [UIColor blackColor];
self.view = main;
[main release];
self.tim = [NSTimer scheduledTimerWithTimeInterval: 0.01
target: self selector: @selector (gameloop:) userInfo: nil repeats: YES];
[super viewDidLoad];
}
有人能帮我吗?正如U62所说,100fps不是一个现实的期望,试着以每秒30到60次的速度运行它,看看它是如何运行的。此外,如果您编写的游戏需要以高帧速率运行,您应该考虑在OpenGL中编写它
一个选项可能是每勾选一次处理逻辑,但仅每隔几勾选一次就绘制到屏幕上。NSTimer是此作业的错误工具。它不是一个实时计时器。它不能保证何时发射,而且你很容易错过画面
关于如何在计算机上开发此类程序,有很多很好的建议。请特别注意对苹果示例代码的引用。我的意思是,例如,当我制作帧动画时,帧在模拟器中以正确的速度显示。 但在这个设备中,它显示的速度非常慢(FPS),换句话说,一个男孩在模拟器中跑得很快
他行走的设备。100次每秒更新可能有点乐观;改为尝试1.0/30.0。此外,要更加具体。你说设备“不工作”,但你说“不工作”是什么意思?