16

我想用 Python 开发一个非常简单的 2D 游戏。Pygame 是 Python 中最流行的游戏开发库,但我已经对 wxPython 非常熟悉,并且使用它感觉很舒服。我什至在里面写了一个俄罗斯方块克隆,而且非常流畅。

我想知道,Pygame 在图形方面提供了哪些 wxPython 无法做到的(暂时不考虑声音)?在 Pygame 中做图形是否比在 wxPython 中更简单/更快?是不是更跨平台?

看起来我在这里遗漏了一些东西,但我不知道是什么。

4

2 回答 2

19

好吧,理论上你可以用 Pygame 做任何你不能用 wxPython 做的事情。关键不是什么,而是如何。在我看来,使用 PyGame 编写游戏更容易,因为:

  • 它更快。Pygame 基于 SDL,这是一个专门为游戏设计的 C 库,它的开发考虑了速度。开发游戏时,您需要速度。

  • 是一个游戏库,而不是通用画布,它具有对精灵、变换、输入处理、绘图、碰撞检测有用的类和函数。它还实现了游戏中常用的算法和技术,如脏矩形、翻页等。

  • 成千上万的游戏和用它制作的例子。你会更容易发现如何做任何技巧。

  • 有很多具有可以重用的效果和实用程序。你想要一个等距游戏,有一个库,你想要一个物理引擎,有一个库,你什么很酷的视觉效果,有一个库。

  • 周刊。:) 这是为了让您的游戏开发更加有趣!

对于像俄罗斯方块这样的非常简单的游戏,差异不会太大,但是如果你想开发一个相当复杂的游戏,相信我,你会想要像 PyGame 这样的东西。

于 2008-12-05T14:35:58.753 回答
13

wxPython 基于wxWidgets,它是一个面向 GUI 的工具包。它的优点是使用运行它的系统提供的样式和装饰,因此很容易编写可移植的应用程序,很好地集成到您正在运行的任何外观和感觉中。你想要一个复选框?使用 wxCheckBox 和 wxPython 将处理外观和交互。

另一方面,pyGame 面向游戏开发,因此以 wxPython 所不具备的方式(也不需要,因为它调用操作系统来绘制其大部分控件)使您更接近硬件。pyGame 有许多与游戏相关的东西,例如碰撞检测、表面和层的细粒度控制或在您选择的时间翻转显示缓冲区。

也就是说,就图形而言,您可能总能找到一种方法来使用这两个工具包做您想做的事情。但是,当速度很重要,或者您希望以图形方式实现比俄罗斯方块更费力的游戏创意时,您可能更适合使用 pyGame。如果你想使用大量的 GUI 元素并且不需要花哨的图形和声音功能,你最好使用 wxPython。

便携性不是问题。两者都可用于三巨头(Linux、OSX、Windows)。

It's more a question of what kind of special capabilities you need, really.

于 2008-12-05T14:53:07.063 回答