首页 > 解决方案 > 如何阻止 pygame 显示不需要的文本符号?

问题描述

我目前正在开发一款游戏,在我的暂停屏幕上,我让它使用我的绘图文本功能来显示“暂停”以及我的库存中的内容(一个包含“拾取”字符串的列表)。当它绘制我的库存文本时,它会像符号一样显示这些框,看起来像“你有:[]'key'[]”我尝试使用 string.strip() 删除这些 [] [],但无济于事. 谁能告诉我为什么这样做以及如何解决它? 这是我渲染的字符串

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("You have:" + self.inv... 虽然它无法连接,但块消失了。我还更改了字体,它从块更改为括号

标签: python-2.7textpygame

解决方案


看起来您的字体无法渲染[]. 尝试替换您的draw_text()论点:

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

例如

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

推荐阅读