gpt4 book ai didi

iphone - 除了使用 NSTimer 之外,在 iPhone 上创建游戏循环的更好方法是什么?

转载 作者:太空狗 更新时间:2023-10-30 03:12:02 25 4
gpt4 key购买 nike

我正在 iPhone 上编写游戏。我目前正在使用 NSTimer 来触发我的游戏更新/渲染。这个问题是(在分析之后)我似乎在更新/渲染之间失去了很多时间,这似乎主要与我插入 NSTimer 的时间间隔有关。

所以我的问题是使用 NSTimer 的最佳替代方法是什么?

请为每个答案选择一个选项。

最佳答案

你可以通过线程获得更好的性能,尝试这样的事情:

- (void) gameLoop
{
while (running)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[self renderFrame];
[pool release];
}
}

- (void) startLoop
{
running = YES;
#ifdef THREADED_ANIMATION
[NSThread detachNewThreadSelector:@selector(gameLoop)
toTarget:self withObject:nil];
#else
timer = [NSTimer scheduledTimerWithTimeInterval:1.0f/60
target:self selector:@selector(renderFrame) userInfo:nil repeats:YES];
#endif
}

- (void) stopLoop
{
[timer invalidate];
running = NO;
}

renderFrame 方法中,您准备帧缓冲区、绘制帧并将帧缓冲区呈现在屏幕上。 (P.S. 关于各种类型的游戏循环及其优缺点有很棒的 article。)

关于iphone - 除了使用 NSTimer 之外,在 iPhone 上创建游戏循环的更好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/96265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com