0

我开始研究 2D 滚动射击游戏,我想知道 pygame 是否合适。我想在使用数百个精灵(当然主要是子弹)为滚动背景设置动画时达到接近 60 fps;这对pygame可行吗?从我读过的内容来看,我倾向于不,但我想从对 pygame 有更多经验的人那里得到另一个意见。

我也在考虑将 PyOpenGL 与 pygame 一起使用,但我完全没有使用 OpenGL 的经验。在这种情况下,OpenGL 会比原生 pygame 图形更好地工作吗?是否有任何关于 OpenGL/PyOpenGL/将 PyOpenGL 与 pygame 结合使用的好教程?

4

2 回答 2

0

根据我的说法,Pygame 是 Python 中 2D 游戏的最佳解决方案。您可以保存 Surfaces 使用其优化的 Sprites 动画,因此我认为这是最快的解决方案:至于开发过程而不是代码执行。

于 2012-04-25T12:38:29.530 回答
0

Pygame 与 2D CPU 图形一样好。所有图形都是用 C 实现的(PyGame 包装了 SDL),因此代码几乎与等效的 C 软件渲染器一样快。

也就是说,它仍然(基本上)是一个软件渲染器,并且在每台现代计算机中都有一个有趣的设备,称为 GPU,旨在做到这一点。PyOpenGL/OpenGL 将利用它,所以是的,PyOpenGL 绝对会比 PyGame 渲染得更快。

底线:

PyGame 速度很快,但不如 PyOpenGL 快。对于数百个屏幕精灵,这主要是一个逻辑问题(Python 逻辑很慢,即使按照解释语言标准也是如此)。用 SDL 重写它会使其更快(因为 C/C++ 比 Python 快)。你也可以使用 PyOpenGL,我预测在这种情况下它会显着提高性能,虽然不是很显着(但它更难使用)。

就像我说的,不过,我认为这主要是一个逻辑问题。使用 PyOpenGL 有一些话要说,但正如他们所说,您所做的最大优化是当您的代码第一次工作时。

于 2012-05-18T05:35:13.547 回答