【问题标题】:Pygame - Is There A Way To Get The String From fontType.render?Pygame - 有没有办法从 fontType.render 获取字符串?
【发布时间】:2013-09-04 15:36:18
【问题描述】:

我正在尝试逐字打印对话框中的对话(如口袋妖怪或大多数 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))

如果没有让我知道,我希望我说得足够清楚。谢谢。

【问题讨论】:

    标签: python text dialog pygame


    【解决方案1】:

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

    【讨论】:

    • 感谢您的解释。在对代码进行了一些修改之后,我试图避免的方式实际上并没有那么糟糕。
    猜你喜欢
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2021-07-08
    相关资源
    最近更新 更多