我该用哪个GUI工具包与Pygame配合?
我正在制作一个游戏,需要在pygame的界面上弹出一些图形界面元素。这个问题不适合我,因为wxPython是在SDL表面之外运行,而不是在里面。目前我只看到过ocemp、pgu和GooeyPy这几个工具。
- Ocemp看起来很庞大且杂乱。它提到的是Python 2.3,而我在快速浏览它的代码库时发现的最新文件已经有两年没更新了。
- 我没能让GooeyPy正常工作(虽然我也没怎么尝试;鸡蛋和Debian之间的关系不太好),而且它的版本0.2最后一次更新是在2009年2月。
- 我一直在使用pgu,但它似乎已经不再维护了(最后一次更新是在2009年11月,原来的维护者也放弃了它),而且开始显得有些过时。它使用的是旧式类,并且会抛出字符串异常。
所以我想问你们,SO,应该使用哪个图形界面工具包来在你的pygame应用中制作漂亮的可点击按钮?有没有正在积极开发的工具?
编辑,2011年9月
看起来PGU仍然在维护中。最近的提交是在4天前。
6 个回答
1
这是来自Python维基的一段内容,提到了一些关于Python游戏库的信息。你可以通过这个链接查看详细内容:http://wiki.python.org/moin/PythonGameLibraries
2
虽然这个方法有点老了,但其实你不需要图形界面库,只要用精灵就可以了。比如说,想要显示文字,你可以用一个精灵,然后给它设置字体来渲染文字。按钮也是类似的,它是从标签继承来的,增加了一些功能,比如可以检测状态变化,从而触发其他操作。而滚动条的工作原理和按钮差不多,只是它会改变标签或者其他东西的数值。
2
我不知道pygame有没有现成的图形界面工具,但自己做一个应该不会太难(而且可以考虑开源哦!)
如果你只是想做几个简单的按钮,可以用GIMP、Photoshop或者其他软件制作两到三个图片——一个是正常状态,一个是按下状态,还有可能的悬停状态。然后你需要写一个事件循环/处理程序,大致流程是这样的:
- 获取鼠标位置
- 鼠标是否在任何按钮上(并且没有按下按钮)?
- 显示悬停状态的图片
- 鼠标是否在按钮上并且点击了鼠标?
- 触发与那个按钮相关的事件
- 回到第一步
这只是一个简单的概述,但至少可以给你一个起点(如果没有其他人提供pygame的GUI库的话)