希望那里有一些 GLKViewController 专家,因为我有一些问题 :)
只是对我的应用程序的快速描述。我有一个 UINavigationController 在其中推送不同的屏幕。
在某些时候,我进入了我的游戏屏幕,它是 UINavigationController 的子类。在这个屏幕中,viewDidLoad
我手动创建了一个 EAGLContext、GLKView 并实例化了一个新的 GLKViewController(以处理我的更新和绘制调用)。
我将首选 fps 设置为 30。
问题是前 3-4 个更新调用带有正确的 DT,但是我有 2-3 帧,它们之间有 1 秒。我使用 测量 DT controller.timeSinceLastUpdate
。所以我喜欢:
dt=0.33
dt=0.33
dt=0.33
dt=1.07
dt=1.05
dt=0.33
dt=0.33
在此之后,我只得到有效的 DT 时间。我不知道为什么这些帧有这种延迟。我测量了我在更新和绘制方法中花费的时间,距离 1 秒还差得很远。
另外,我没有加载任何纹理/创建任何几何图形。一切都是在加载时完成的,因为它是一个相当小的游戏。
此外,如果我弹出游戏屏幕控制器,然后推回游戏屏幕的另一个实例,这个新的 GLKViewController 只会大约每 1 秒调用一次我的更新方法。
有人在使用 GLKViewController 时遇到帧率问题吗?
谢谢,