最近想实现一个飞机大战的游戏项目,但是没怎么开始就很卡。
我在线程里面设置了while(true)循环,然后我写了一个函数算帧率FPS。
我发现游戏帧率刚开始在30ms稳定;当出现第一个敌机时候,帧率上涨到210ms后保持稳定。
再出现一个敌机,帧率上涨到400ms后保持稳定。
出现第三个敌机后,帧率590ms并且保持稳定。
给我的感觉是生成对象多一个就涨了大约200左右的FPS。
查资料说有可能是循环次数太多。
但是我看了看我函数里面的循环,主要是循环遍历敌机和子弹使敌机、子弹移动。
我已经设置了敌机和子弹对象的生成上限都是5个,多了就不会生成了,所以我感觉循环次数也不是很多哇。
但是就是卡的不行。
我也百度了很多降低帧率的方法,好像不起什么作用。
还是我很菜,很多东西没想明白。求dl给我解答一下,谢谢啦。
java游戏开发怎么降低帧速率FPS呢
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- Pliosauroidea 2021-08-22 00:46关注
是不是轮训的频率太快
python中pygame定义了pygame.time.Clock类可以控制帧率
java中不知道有没有类似的东西
提供一个思路:可以在初始化后进入while True循环,在循环最外层对时间进行判断,判断此次while和上次while的时间戳差值,如果时间戳差值大于某个特定值,才进行while内部的其他运算,然后将时间戳更新保存,用于下一轮比对
就是通过判断时间间隔的方法强行锁帧
有帮助望采纳解决 无用评论 打赏 举报
悬赏问题
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 对于相关问题的求解与代码
- ¥15 ubuntu子系统密码忘记
- ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作
- ¥15 求NPF226060磁芯的详细资料