pygame 制作的高级游戏太慢了
Advanced game made in pygame is too slow
我已经开发了一个月的游戏,它非常棒。我对游戏开发不是很陌生。
没有精灵也没有图像,只有原始绘制的圆形和矩形。
一切都很好,除了 FPS 越来越慢,而且计算机不时开始加速和升温。
我每帧的步骤(除了输入处理):
- 更新每个对象状态(物理、碰撞等),大约 50 个对象比另一个更复杂
- 绘制世界,(1024,512) 地图上的每个像素。
- 绘制每个对象,仅
pygame.draw.circle
或类似功能
有一些文字绘制,但font.render
只使用了一次,所有的文字表面都被缓存了。
有没有关于如何提高游戏速度的信息?
主要是复杂性还是我做事的方式有问题?我可以在计算机上轻松和高 FPS 玩更复杂的游戏(不在 pygame
中)。
我应该转到 pyglet
或 openGL
等不同的模块吗?
编辑:感谢大家的快速回复。抱歉信息不足。我已经尝试了很多东西,但由于笨拙,我试图解决 "draw every pixel every single frame proccess" 我将其更改为仅为更改而绘制,现在它运行得如此之快,我不得不更改参数以使其再次变得相当慢。谢谢 :)
不看代码就很难说出有用的东西。
更新对象时,您可能得到了不必要的 loops/checks。
你试过increasing/decreasing物体的数量吗?
执行此操作时性能有何变化?
您是否尝试过使用 pygame 制作的其他游戏?
你的电脑是不是坏了?
我认为 pygame 应该不会有 50 个简单形状的问题。我得到了一些优化不佳的游戏,其中包含 300 多个对象和 60+ fps(物理(碰撞、重力等)),所以我认为 pygame 可以轻松处理 50 个简单的形状。您可能应该 post 一个代码示例,说明如何迭代对象以及对象的外观。
我已经开发了一个月的游戏,它非常棒。我对游戏开发不是很陌生。
没有精灵也没有图像,只有原始绘制的圆形和矩形。
一切都很好,除了 FPS 越来越慢,而且计算机不时开始加速和升温。
我每帧的步骤(除了输入处理):
- 更新每个对象状态(物理、碰撞等),大约 50 个对象比另一个更复杂
- 绘制世界,(1024,512) 地图上的每个像素。
- 绘制每个对象,仅
pygame.draw.circle
或类似功能
有一些文字绘制,但font.render
只使用了一次,所有的文字表面都被缓存了。
有没有关于如何提高游戏速度的信息?
主要是复杂性还是我做事的方式有问题?我可以在计算机上轻松和高 FPS 玩更复杂的游戏(不在 pygame
中)。
我应该转到 pyglet
或 openGL
等不同的模块吗?
编辑:感谢大家的快速回复。抱歉信息不足。我已经尝试了很多东西,但由于笨拙,我试图解决 "draw every pixel every single frame proccess" 我将其更改为仅为更改而绘制,现在它运行得如此之快,我不得不更改参数以使其再次变得相当慢。谢谢 :)
不看代码就很难说出有用的东西。 更新对象时,您可能得到了不必要的 loops/checks。
你试过increasing/decreasing物体的数量吗?
执行此操作时性能有何变化?
您是否尝试过使用 pygame 制作的其他游戏?
你的电脑是不是坏了?
我认为 pygame 应该不会有 50 个简单形状的问题。我得到了一些优化不佳的游戏,其中包含 300 多个对象和 60+ fps(物理(碰撞、重力等)),所以我认为 pygame 可以轻松处理 50 个简单的形状。您可能应该 post 一个代码示例,说明如何迭代对象以及对象的外观。