【问题标题】:How do you create buttons using pygame? [duplicate]如何使用 pygame 创建按钮? [复制]
【发布时间】:2014-01-14 16:46:28
【问题描述】:

我在 python 中创建一个菜单,在一个 pygame 菜单中我想显示 3 个不同的选项,它们是按钮。按钮是:

  • 玩游戏
  • 输入玩家姓名
  • 退出

有人可以帮我,告诉我你是如何使用 pygame 创建按钮的

【问题讨论】:

  • 你试过用谷歌搜索吗?我在谷歌中输入“pygame按钮”,有很多例子,看起来你必须实现自己的按钮类......

标签: python pygame


【解决方案1】:

pygame(以及底层库,SDL)是一个用于以跨平台方式构建图形应用程序的库。这意味着它可以帮助您创建一个窗口、在屏幕上绘制原始形状/颜色/纹理、使用声音、计时器等。虽然它提供了使用自己的 API 进行绘制的能力,但您也可以使用它来挂钩OpenGL 上下文使用稍微不同的 API 来绘制 2D 和 3D 场景。

然而,pygame 并不意味着做与创建图形应用程序相关的所有事情。与 Windows 窗体或 GTK+ 等技术不同,pygame 旨在帮助创建需要更多支持的应用程序,而不仅仅是按钮/文本字段/等。它对制作简单的 GUI(图形用户界面)没有太多的支持。由您来实现(或使用库)来实现该逻辑。

此时,您可以做几件事:

使用绘图基元创建您自己的按钮。

这基本上意味着当你想制作一个“按钮”时,你需要“绘制”一个按钮(就像你在 pygame 中“绘制”任何东西一样)。此外,您需要处理“单击”按钮时的输入,以及进入您需要的适当界面的所有其他内容。

这需要做很多正确的工作,但可以很简单地完成。基本上,您需要跟踪按钮的“边界”,然后监听鼠标单击事件。如果单击时鼠标在按钮的“边界”内,那么您将激活单击按钮时应该发生的逻辑。

当您需要处理可移动、隐藏等的 GUI 时,事情会变得更加复杂。

为用户界面使用现有库

在这种情况下,您最终会使用现有的与 pygame 兼容的 GUI 库。谷歌搜索“pygame gui library”并开始使用它们。这些库已经实现了我在上一节中讨论的逻辑:将精灵绘制到屏幕上,处理单击按钮时发生的事情等。

每个 GUI 库的工作方式可能不同:一些可能易于使用,另一些可能更好地支持设置按钮的样式以实现不同的外观/感觉。您需要做一些研究,看看什么适合您。

使用非 pygame GUI 库

在这种情况下,您可以使用 GTK+TKinter 之类的库来构建您的界面。这些库具有使用按钮、文本字段等轻松构建“表单”的内置功能。但是,它们通常还可以将 pygame 屏幕嵌入为“小部件”。

听起来这不是您真正想要做的,但我已将其添加为一个选项,因为其他人可能会提出这个问题,这将是他们的答案。

结论

有关在 pygame 中创建 GUI 的更多信息,您可以read the GUI section on the pygame wiki. 如果您正在寻找编码上述任何解决方案的具体帮助,我建议您自己尝试,然后当您遇到困难时发布代码这给你带来了问题。

【讨论】:

  • 感谢您抽出宝贵时间回答
猜你喜欢
  • 1970-01-01
  • 2022-11-22
  • 1970-01-01
  • 2016-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-24
相关资源
最近更新 更多