Pygame - 有没有办法从fontType.render获取字符串?

时间:2013-09-04 15:36:19

标签: python text dialog pygame

我正在尝试逐个字母地打印对话(如口袋妖怪或大多数RPG),我想知道是否有办法从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))

如果不让我知道的话,我希望自己能够说清楚。感谢。

1 个答案:

答案 0 :(得分:2)

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

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))