第三题真的很简单qwq 2021-08-21 19:16 采纳率: 0%
浏览 35

java游戏开发怎么降低帧速率FPS呢

最近想实现一个飞机大战的游戏项目,但是没怎么开始就很卡。
我在线程里面设置了while(true)循环,然后我写了一个函数算帧率FPS。
我发现游戏帧率刚开始在30ms稳定;当出现第一个敌机时候,帧率上涨到210ms后保持稳定。
再出现一个敌机,帧率上涨到400ms后保持稳定。
出现第三个敌机后,帧率590ms并且保持稳定。
给我的感觉是生成对象多一个就涨了大约200左右的FPS。
查资料说有可能是循环次数太多。
但是我看了看我函数里面的循环,主要是循环遍历敌机和子弹使敌机、子弹移动。
我已经设置了敌机和子弹对象的生成上限都是5个,多了就不会生成了,所以我感觉循环次数也不是很多哇。
但是就是卡的不行。
我也百度了很多降低帧率的方法,好像不起什么作用。
还是我很菜,很多东西没想明白。求dl给我解答一下,谢谢啦。

  • 写回答

1条回答 默认 最新

  • Pliosauroidea 2021-08-22 00:46
    关注

    是不是轮训的频率太快
    python中pygame定义了pygame.time.Clock类可以控制帧率
    java中不知道有没有类似的东西
    提供一个思路:可以在初始化后进入while True循环,在循环最外层对时间进行判断,判断此次while和上次while的时间戳差值,如果时间戳差值大于某个特定值,才进行while内部的其他运算,然后将时间戳更新保存,用于下一轮比对
    就是通过判断时间间隔的方法强行锁帧
    有帮助望采纳

    评论

报告相同问题?

问题事件

  • 修改了问题 8月21日
  • 创建了问题 8月21日

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料