我有一个使用加速度计的 IOS 游戏。我的游戏以 60 fps 的良好速率渲染,但我从加速度计的输入滞后。例如,在我将游戏向左倾斜后,游戏需要一秒钟才能做出响应。触摸事件也是如此,有时延迟约为一秒。
我的游戏的渲染循环如下所示:
procedure RenderFrame
switch to "SpaceShips" texture
for each bad guy
update his location
render to OpenGLES
end loop
update good guy location
render him to OpenGLES
switch to "Particles" texture
for each particle
update the location
render to OpenGLES
end loop
end RenderFrame
对我来说,这听起来类似于这个问题:
OpenGL ES 2.0 iPhone - 在后台线程块主线程上渲染
这听起来像是我的主线程被阻塞了,我会从并发中受益吗?我可以通过将整个方法移到另一个后台线程来简单地删除主线程上的块,还是我必须对上述方法进行更精细的重写以实现并发?如果可能的话,我想做最少的并发来减轻主线程上的阻塞。