当前位置:  开发笔记 > 编程语言 > 正文

Python游戏库Pygame和Pyglet之间的差异?

如何解决《Python游戏库Pygame和Pyglet之间的差异?》经验,为你挑选了4个好方法。

我有过Pygame的一些经验,但是这些天似乎有很多关于Pyglet的嗡嗡声.

这两个库如何比较?在功能和易用性方面,使用一个优于另一个的优势是什么?

最后,你会说一个比另一个更Pythonic吗?



1> sastanin..:

Pygame:LGPL许可证

Pyglet:BSD许可证

Pygame严重依赖SDL库

Pyglet是一个纯粹的python库,具有较少的依赖性,我认为它需要更好地理解OpenGL

Pygame在这附近很长一段时间,很多人都在使用它

Pyglet是一个新的lib

Pygame面向游戏开发(游标,精灵,操纵杆/游戏手柄支持)

Pyglet更通用(尽管它有一个Sprite类)

我在pyglet-users邮件列表上也发现了这个讨论:从pygame + pyopengl到pyglet

免责声明:我还没有使用过,只试过一些教程;-)



2> Kiv..:

我正在考虑使用Pygame和Pyglet作为一个小型2D射击游戏,在查看源代码之后,一些教程与Pyglet一起进行.我对结果非常满意.

Pyglet立即工作,很愉快,并且在概念上非常干净.它对我来说当然有一种Pythonic的感觉:你可以很快得到一个简单易懂的例子,它使用装饰器来很好地处理事件.它也没有强制使用特定的程序结构,这使我很容易混合使用Pymunk的物理建模(http://code.google.com/p/pymunk/).

虽然它基于OpenGL并且您可以将这些功能用于特殊效果,但我能够在不知道它们的情况下做得很好.

它也适用于py2exe和py2app,这很重要,因为很多人没有安装Python解释器.

不利的一面是,它在网络上的信息较少,因为它更新,以及更少的示例游戏.

此外,它与以前的版本相比发生了很大的变化,因此现在的一些教程已经过时了(有"新风格事件循环"和Sprite类作为主要补充.)

我建议下载这些例子(包括一个名为Astraea的漂亮的Asteroids克隆)并看看你是否喜欢这种风格.



3> ztangent..:

如果您从未打算在游戏本身中绘制任何矢量图形或基元,并且只是坚持从磁盘加载图像,那么Pyglet是很好的(对于2D游戏).它也更清洁,因为没有必要编写自己的游戏循环,不得不担心速度,时间和响应能力.

但是,如果你必须在运行中生成图形,然后将它们保存为变量或文件,那么pyglet会变得相当复杂,因为你开始不得不使用低级OpenGL函数.在这些场景中,pygame更加用户友好,其软件渲染和Surface类.或者您可以使用Python Imaging Library并将其与pyglet连接.

显然,对于3D游戏,无论如何你都不得不使用OpenGL函数,在这种情况下我推荐pyglet而不是pygame + PyOpenGL.


'编写自己的游戏循环'

4> sastanin..:

我想补充一点,有一个快速精灵库Rabbyt可能是Pyglet的一个很好的补充.

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有