我在python中创建一个菜单,在pygame菜单中我想显示3个不同的按钮选项。按钮是:
有人可以帮助我并告诉我如何使用pygame创建按钮
答案 0 :(得分:5)
pygame(以及底层库,SDL)是一个用于以跨平台方式构建图形应用程序的库。这意味着它可以帮助您创建一个窗口,在屏幕上绘制原始形状/颜色/纹理,使用声音,计时器等。虽然它提供了使用自己的API绘制的能力,但您也可以使用它来挂钩OpenGL上下文使用稍微不同的API来绘制2D和3D场景。
然而,pygame并不意味着与创建图形应用程序有关。与Windows Forms或GTK +等技术不同,pygame旨在帮助创建需要更多支持的应用程序,而不仅仅是按钮/文本字段/等。它对制作简单的GUI(图形用户界面)没有太多的支持。您可以实现(或使用库)来实现该逻辑。
此时,你可以做一些事情:
这基本上意味着当你想制作一个“按钮”时,你需要“画”一个按钮(就像你在pygame中“绘制”任何东西一样)。此外,您需要处理“单击”按钮时的输入,以及进入您需要的适当界面的所有其他内容。
这是很多正确的工作,但可以很简单地完成。基本上,您需要跟踪按钮的“边界”,然后监听鼠标单击事件。如果单击时鼠标位于按钮的“边界”内,则激活单击按钮时应该发生的逻辑。
当您需要处理移动,隐藏等的GUI时,事情会变得更加复杂。
在这种情况下,您最终使用现有的兼容pygame的GUI库。谷歌为“pygame gui库”开始与他们一起玩。这些库已经实现了我在上面部分讨论的逻辑:将精灵绘制到屏幕上,处理单击按钮时发生的事情等等。
每个GUI库可能会有不同的工作方式:有些可能很容易使用,有些可能会更好地支持按钮的样式,使其外观/感觉不同。你需要做一些研究才能看到适合自己的东西。
在这种情况下,您可以使用GTK+或TKinter等库来构建界面。这些库具有内置功能,可以使用按钮,文本字段等方式轻松构建“表单”。但是,它们通常还能够将pygame屏幕嵌入为“小部件”。
这听起来并不像你想做的那样,但我已经把它添加为一个选项,因为其他人可能会提出这个问题,这就是他们的答案。
有关在pygame中创建GUI的更多信息,您可以read the GUI section on the pygame wiki.如果您正在寻找编写上述任何解决方案的具体帮助,我建议您自己尝试,然后当您遇到问题时给你问题的代码。