gpt4 book ai didi

java游戏在更快的cpu上口吃

转载 作者:搜寻专家 更新时间:2023-11-01 03:01:52 24 4
gpt4 key购买 nike

我一直在阅读一本关于安卓游戏编程的书(安卓游戏开发初学者指南),然后我开始制作自己的游戏。

这是一个使用本书框架的java游戏。 (这本书从在转向 android 之前用 java 制作游戏开始)。

无论如何,我制作了我的游戏并且它在我的笔记本电脑上运行顺利,它配备了一个普通的 i3 处理器 2.4GHz,我几乎在上面完成了所有的编码和测试。

我买了一台配备 i5 3.3 GHz 处理器的新台式机,所以我决定在那里试试我的游戏。

但是,在我可能更快的台式机上,游戏运行起来似乎非常不稳定。似乎有一个口吃,我不知道是什么原因造成的,因为我没有更改任何代码。

我的增量在两台机器上都是一致的,我应该得到一个流畅的 ~60fps 但它在桌面上根本不流畅。

我注意到减少最长 sleep 时间(主要是提高帧速率)似乎有点帮助,但我的所有功能都基于最大 60fps。

我不太擅长这种级别的编程(你知道线程等等)。

关于可能是什么问题的任何想法,我认为这与游戏循环和更快的处理器有关。

最佳答案

至于为什么你的更快的 CPU 会卡顿,我猜是因为 updateAndRender(...) 中的代码。奇怪的是,当您可能有很多更新但想跳过一些渲染时,该方法既更新又渲染。

对于游戏循环和一般的此类计时循环,请记住,您的循环既会“超前”所需时间,也会“落后”所需时间。

这意味着期望您的循环“符合要求”是一种不切实际的期望。一旦你 sleep ,你就把控制权让给了操作系统。操作系统可能让你在请求的时间正好 sleep ,但很有可能如果它没有更好的事可做,它可能会提早叫醒你,如果它很忙,可能会吵醒你。

考虑到这一点,我会首先确定您在游戏中睡了多少“滴答声”并更新世界状态。然后确定您是否睡了足够长的时间来更新屏幕,如果没有,请等待。如果你有,那么检查你是否需要不止一个,如果需要,只做“最后一个”。如果您“跳过”太多屏幕更新(4 个是一个不错的数字),那么就错误地退出,表明屏幕绘制速度不够快(您的目标是 15 fps)。

关于java游戏在更快的cpu上口吃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32984212/

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