如何阻止pygame显示不需要的文本符号?

时间:2018-05-08 10:04:35

标签: python-2.7 text pygame

我正在制作一款游戏,在我的暂停画面上,我让它使用我的绘图文字功能来显示“暂停”以及我的库存中的内容(一个包含“拾取”字符串的列表)。当它绘制我的库存文本时,它会显示这些符号框,这就是它的样子 “你有:[]'key'[]” 我尝试使用string.strip()删除这些[] [],但无济于事。任何人都可以告诉我为什么这样做以及如何解决它? Here is my rendered string

if (self.paused):
    self.screen.blit(self.dim_screen, (0, 0))
    self.draw_text("Paused", self.title_font, 105, RED, WIDTH / 2, 
    HEIGHT / 2, align="center")
    self.draw_text("You have:{}".format(self.inv), self.title_font, 30, 
    GREEN, 50, HEIGHT - 50, align="nw")
pg.display.flip()

编辑:似乎.format的{}是导致我删除它们的块的原因,看它是否能正确渲染self.draw_text(“你有:”+ self.inv ... 虽然它没有连接,但是哪些块已经消失了。 我也改变了字体,它从块变为括号

1 个答案:

答案 0 :(得分:1)

看起来您的字体无法呈现[]。尝试替换draw_text()参数:

self.draw_text("You have: " + ", ".join(self.inv), self.title_font, 30, 
               GREEN, 50, HEIGHT - 50, align="nw")

E.g。

>>> inv = ["key", "knife"]
>>> "You have:{}".format(inv)
"You have:['key', 'knife']"
>>> "You have " + ", ".join(inv)
'You have key, knife'