需要Pygame帮助

时间:2013-09-28 22:40:28

标签: python text pygame

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

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

这是我的计划:

  • 我创建一个名为 pane
  • 该类的属性如下:xpos,ypos,text,width height
  • 该类的方法如下:add(textToDisplay),delete(textToDisplay) - (删除函数目前不是那么重要),displayPane()

如果有可能,请告诉我这是否真的可以使用python和pygame /提示我如何做到这一点(比如一些有用的链接,因为Google已经归结为我的朋友了搜索.XD)?如果不是你推荐的那种语言我会在吗?

1 个答案:

答案 0 :(得分: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类,或者如果您有特殊需要,则使用自定义类。当然,点击捕获和整理部分仍然是程序性的。

我改编了一个项目,我正在努力做我认为你想要的事情:

enter image description here

您无法实际看到光标,但我点击鼠标中键创建圆圈,并使用主按钮显示文字。

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

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

您可以将obj.text设置为None来删除文字,例如event.button == SECONDARY_BUTTON时,您可以通过点击圈子上的辅助鼠标按钮删除文字。< / p>

P.S。:请注意,我有一个用鼠标位置碰撞物体的功能(因为我正在使用它需要它),但你不需要它。您可以按照上面的建议使用pygame.Rectpygame.Rect.collidepoint