2

我是 PyGame 的新手,需要一些帮助!
首先让我说我对 Python 语言有一个基本的了解,我最近开始学习如何使用 PyGame,这对我来说是新事物。但是,在尝试为 PyGame 编写代码时,我确实遇到了很多困难。只是为了让您知道我已经阅读并观看了很多教程,但它们都没有以我需要的方式帮助我。

我的问题是我试图让一个框出现在屏幕上,上面写着一个词,例如:“你好”。单击该按钮后,应该会出现 hello。

这是我的计划:

  • 我创建了一个名为窗格的
  • 该类的属性将是:xpos、ypos、文本、宽度高度
  • 该类的方法如下:add(textToDisplay)、delete(textToDisplay) - (删除功能目前不是那么重要)、displayPane()

如果可能的话,你能否告诉我这是否真的可以使用 python 和 pygame/向我提示我将如何做到这一点(比如一些有用的链接,因为谷歌在搜索时并不是我的朋友。 XD)?如果不是什么语言,你会推荐我用什么语言?

4

1 回答 1

3

看一眼:

http://pygame.org/docs/ref/mouse.html#pygame.mouse.get_pos http://pygame.org/docs/ref/rect.html#pygame.Rect.collidepoint http://pygame.org/ docs/ref/draw.html#pygame.draw.rect http://pygame.org/docs/ref/font.html#pygame.font.SysFont

如果您只处理一个形状,我的建议是一种程序方法:

  • 用于pygame.draw.rect在一个点上绘制一个矩形。
  • 使用函数来捕获鼠标点击及其位置。
  • 将鼠标点击与您的矩形位置相撞(如果有多个对象,请使用对象列表)。
  • 创建一个函数以在屏幕上绘制文本并将其与将鼠标单击碰撞到矩形的函数相关联。

否则,我将采用面向对象的方法并pygame.sprite.Sprite为每个形状使用该类,或者如果您有特殊需要,可以使用自定义类。当然,点击捕获和碰撞部分仍然是程序性的。

我改编了一个我正在做的项目来做我认为你想要的:

在此处输入图像描述

您实际上看不到光标,但我使用鼠标中键单击以创建圆圈,并使用主按钮单击以显示文本。

来源: http: //pastebin.com/jycEFAtX

注意:这是一个圆形而不是矩形,因为我使用的是圆形,但这应该很容易改变。一切都是一团糟,因为我只是调整了我所拥有的并将它们放在一个文件中(最好将它分成不同的文件)。使用它只是为了了解如何做你想做的事。

您可以通过设置obj.text为来删除文本None,例如 when event.button == SECONDARY_BUTTON,这样您就可以通过在圆圈上单击鼠标辅助按钮来删除文本。

PS:请注意,我有一个与鼠标位置碰撞对象的功能(因为我正在使用它),但您不需要它。如上所述,您可以使用pygame.Rectand 。pygame.Rect.collidepoint

于 2013-09-30T03:21:51.717 回答