【问题标题】:Pygame help needed需要 Pygame 帮助
【发布时间】:2013-09-28 22:40:28
【问题描述】:

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

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

这是我的计划:

  • 我创建了一个名为 pane 的 class
  • 该类的属性类似于:xpos、ypos、文本、宽度高度
  • 该类的方法类似于:add(textToDisplay)、delete(textToDisplay) -(删除功能目前并不那么重要)、displayPane()

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

【问题讨论】:

  • 如果我没有立即回复任何 cmets,那是因为我可能在床上。因为我住的地方已经很晚了。 :)
  • 是的,这在 Pygame 中是可能的。但是你的问题真的很模糊。你到底对什么概念有问题?
  • 我无法创建盒子类(我只需要创建一个盒子,上面写着一些东西,比如你好,然后需要出现在屏幕上)哦,谢谢所有的回复。

标签: python text pygame


【解决方案1】:

看看:

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 来删除文本,例如当event.button == SECONDARY_BUTTON 时,您可以通过在圆圈上单击鼠标辅助按钮来删除文本。

P.S.:请注意,我有一个用鼠标位置碰撞对象的函数(因为我正在使用它),但你不需要它。您可以使用pygame.Rect 和pygame.Rect.collidepoint,如上所述。

【讨论】:

  • 非常感谢,这些是我真正需要的链接和帮助。谢谢。
  • 再次感谢您的帮助,但我无法理解任何事情。这个项目要了我的命:(。事情是我只需要在 pygmae 中绘制一个矩形,并使用 "hello" 在其中写入 classes。对我来说这似乎很容易,但是当我开始做的时候,我就是做不到。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 2017-10-05
相关资源
最近更新 更多