【问题标题】:pygame text variablespygame 文本变量
【发布时间】:2013-03-22 14:50:21
【问题描述】:

我在使用 pygame 时遇到了麻烦...再次...其中一天我发誓我会足够好,不必来这里寻求简单的答案...

无论如何,这次的问题是我试图在屏幕上打印带有变量的文本。

wordfont = pygame.font.SysFont("sans",12)

class Status:

    def __init__(self):
        self.a=30

    def showme(self):
        health = wordfont.render(("Your health: ", self.a,), 1, (255, 9, 12))
        screen.blit(health, (150, 150))

它说它必须是一个字符串或 unicode...但也许有一些方法?我再次提醒大家不要纠正我没有问到的任何事情。我知道可能有一些更简单的方法来做这些事情......

【问题讨论】:

  • 我真的建议你不要使用不在函数中的变量,我知道这是可能的但避免使用这些,有时它会产生你从未想过的问题

标签: python variables text fonts pygame


【解决方案1】:
health = wordfont.render(("Your health: ", self.a,), 1, (255, 9, 12))

应该是

health = wordfont.render("Your health: {0}".format(self.a), 1, (255, 9, 12))

health = wordfont.render("Your health: %s" % self.a), 1, (255, 9, 12))

("Your health: ", self.a,) 是一个元组。通过传递一个字符串,你可以解决你的问题。

请参阅here 了解我所做的...

【讨论】:

  • @user2154113 好吧,如果你想学习,你最好明白你做错了什么..
【解决方案2】:

你想发送一个字符串而不是一个元组来作为第一个参数呈现:

health = wordfont.render("Your health: " + str(self.a), 1, (255, 9, 12))

【讨论】:

    【解决方案3】:

    您将tuple ("Your health: ", self.a,) 作为第一个参数传递给render。我假设应该有一个字符串。

    to format a string with a variable有几种方法,一种方法是:

    msg = "Your health: {0}".format(self.a)
    health = wordfont.render(msg, 1, (255, 9, 12))
    

    【讨论】:

      猜你喜欢
      • 2017-04-21
      • 1970-01-01
      • 2019-03-28
      • 2013-06-15
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多