python游戏开发库_在Python中制作2d游戏应该使用哪个库?

Pygame只是SDL的一个包装器,所以从技术上讲,很多游戏都是用它制作的,不管怎样,大部分工作都是在C端完成的。这有点慢,但如果你在做一个二维游戏,它应该是足够的。Frets-on-Fire是用PyGame的纯python编写的,而FoFiX是用C扩展的python编写的,这些游戏都非常棒,尽管在速度较慢的计算机上FoFiX可能无法运行4个播放器。

Pyglet也很不错,虽然我只将它用于模拟器开发,绘制单层,所以我不知道它在游戏开发中的实际效果如何。我发现在Pyglet中使用direct OpenGL比在SDL/PyGame中使用要容易得多,所以如果你在做一个3D游戏,它可能比使用SDL要好。另外,由于它是用python编写的,所以很容易扩展类来更改函数的处理方式。例如,我试图通过pyglet纹理类将数据加载到openGL纹理中,但是该类无法以我想要的格式加载数据,所以我扩展了该类,并更改了获取纹理类型(来自字符串)的函数,使之包括我想要的纹理,快速且无痛苦。

有一个库我没有提到足够多是SFML。2.0API(目前处于beta版)非常出色,使用起来非常简单,如果我没记错的话,它的运行速度比SDL快一点。它也比SDL更“面向对象”,如果您使用的是像Python这样的OO语言,那么SDL就非常好。它有一些很好的Python绑定,这些绑定是由Bastien Leonard用Cython编写的,非常容易使用(如果不想使用最新版本,也可以使用旧的C绑定)。我以前用过这个,这是一个很愉快的经历。

使用Python的游戏不多的原因很简单:不能关闭Python源代码。即使您使用Py2Exe或其他东西将python“编译”成一个可执行文件,它实际上只是将解释器和python源代码打包成一个exe文件,只需在十六进制编辑器中打开exe即可得到源代码。

虽然我是“在Python中编写,在C中编写关键时间部分”的支持者,但是如果你觉得Python会太慢,我可能会建议C或最好是C++,因为你在爪哇写的不太有用,C语言比java运行起来快一点。Lua只会带走Python的一些可用性,而不会给您带来任何显著的性能增强。SFML和SDL都可以直接从C++使用。

如果您决定使用python,建议:将其作为脚本语言使用。不要试图在纯python中对图像进行位旋转或加载,要么使用库中可用的接口(它们都有很好的接口来实现这些功能),要么编写一个扩展模块来实现这一点。使用python进行逻辑控制并从库中获取数据。如果你遵循这个简单的规则,你真的不应该遇到任何性能问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值