从 Xcode 启动时 iPhone 应用程序的运行方式有所不同

发布于 2024-11-28 10:49:44 字数 428 浏览 3 评论 0原文

我正在开发一款基本上有两个计时器来控制游戏玩法的游戏。一个计时器是 CADisplayLink,它每帧都会调用重绘显示(使用 OpenGL),因此略低于 60 Hz。另一个计时器是一个更新游戏逻辑的 NSTimer,我尝试过在 30 Hz 到 100 Hz 之间的任何位置运行。

当我在 iOS 模拟器中运行该程序时,它很滞后并且似乎在跳帧。当我使用 Xcode 在手机上运行该程序时,它运行良好,没有任何延迟或跳过。然后,当我从手机主屏幕上的图标运行该程序时,它运行有延迟。

在手机上加载程序、从 Xcode 运行程序以及从手机本身启动程序有什么区别?我知道它正在与 Xcode 调试器通信,但是当连接到 Xcode 时它如何才能更好地工作呢?

最后,当我从同一个 CADisplayLink 运行游戏逻辑和图形时,延迟似乎要少得多。同时拥有显示链接和 NSTimer 真的会导致此类问题吗?

I am working on a game that essentially has two timers to control gameplay. One timer is a CADisplayLink that makes a call to redraw the display (with OpenGL) every frame, so slightly under 60 Hz. The other timer is an NSTimer that updates game logic, which I have tried running anywhere between 30 Hz and 100 Hz.

When I run the program in the iOS simulator, it is laggy and seems to be skipping frames. When I use Xcode to run the program on my phone, it works perfectly without any lag or skipping. When I then run the program from the icon on the home screen of my phone, it runs with lag.

What difference is there between loading the program on my phone and running it from Xcode and launching it from the phone itself? I understand that it is communicating with the Xcode debugger, but how could it work BETTER when connected to Xcode?

Lastly, there seems to be much less lag when I run both the game logic and the graphics from the same CADisplayLink. Could having both a display link and an NSTimer really be causing such problems?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文