代码之家  ›  专栏  ›  技术社区  ›  Eli Bendersky

Pygame在图形方面能做什么wxPython不能做的?

  •  17
  • Eli Bendersky  · 技术社区  · 16 年前

    我想用Python开发一个非常简单的2D游戏。Pygame是Python中最流行的游戏开发库,但我已经非常熟悉wxPython,并且使用起来很舒服。我甚至写了一个 Tetris clone 在里面,它很光滑。

    我想知道,Pygame在图形(暂且不谈声音)方面提供了什么wxPython无法做到的?在Pygame中绘制图形是否比在wxPython中更简单/更快?它是否更加跨平台?

    我似乎遗漏了什么,但我不知道是什么。

    2 回复  |  直到 16 年前
        1
  •  20
  •   Manuel Ceron    16 年前

    好吧,理论上,你用Pygame做的一切都是wxPython做不到的。关键不在于什么,而在于如何。在我看来,用PyGame编写游戏更容易,因为:

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

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

    • thousands of games 以及用它做的例子。你会更容易发现如何做任何把戏。

    • 大量的 libraries 有了可以重复使用的效果和实用程序。你想要一个等距游戏,那里有一个库,你想要一台物理引擎,那里有个库,那里有一些很酷的视觉效果,那里还有一个库。

    • PyWeek .:)这是为了让你的游戏开发更加有趣!

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

        2
  •  13
  •   Berufsstudent    16 年前

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

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

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

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

    实际上,这更多的是你需要什么样的特殊能力的问题。