我正在尝试逐个字母地打印对话(如口袋妖怪或大多数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))
如果不让我知道的话,我希望自己能够说清楚。感谢。
答案 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))