使用Pygame进行滚动拍摄

时间:2012-04-25 05:53:46

标签: python pygame

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

尽管如此,它仍然(基本上)是一个软件渲染器,并且在每个现代计算机中都有这个有趣的设备,称为GPU,旨在实现这一目标。 PyOpenGL / OpenGL将利用它,所以是的,绝对PyOpenGL将比PyGame渲染更快。

底线:

PyGame很快,但没有PyOpenGL那么快。对于数百个屏幕精灵,这将主要是一个逻辑问题(Python逻辑很慢,即使是解释语言标准)。在SDL中重写它会使它更快(因为C / C ++比Python快)。您也可以使用PyOpenGL,我预测在这种情况下会显着提高性能,但不会显着提高(但很多更难使用)。

就像我说的那样,我认为这主要是一个逻辑问题。使用PyOpenGL有一些东西可以说,但正如他们所说,你将做的最大的优化是当你的代码第一次运行时。