0

我试图在一个字母一个字母的框中打印对话(如口袋妖怪或大多数角色扮演游戏),我想知道是否有一种方法可以从 fontType.render 变量中获取字符串,如下所示:

self.Coffee = self.fontType.render("Ooh! French Vanilla!", 0, (0,0,0,))

我试着做:

self.Coffee[0]

..但我得到了:

TypeError: 'pygame.Surface' object has no attribute '__getitem__'

我试图避免为这样的字符串创建一个变量(尽管它可能会起作用,但对于我执行其余代码的方式来说,它看起来很草率或太乱了):

dialogue = "Ooh! French Vanilla!"
self.Coffee = self.fontType.render(dialogue, 0, (0,0,0))

我希望我说得足够清楚,如果不让我知道的话。谢谢。

4

1 回答 1

2

pygame.Surface文档表明该对象本质上是一个画布,您的文本将被绘制在该画布上。一旦你把文本放在上面,它就是文本的图像,所以一旦绘制就没有任何实用的方法来检索它(并非不可能,只是不切实际)。我会按照您的建议将对话文本存储在变量中。当我在屏幕上发布任何类型的提示或消息时,我倾向于这样做。我宁愿看到这个:

dialogue = 'Ooh! French Vanilla!'
self.Coffee = self.fontType.render(dialogue, 0, (0,0,0))

比这个:

self.Coffee = self.fontType.render('Some really long dialogue that might make me want this on two lines', 0, (0,0,0))
于 2013-09-04T15:50:57.587 回答