Как предотвратить отображение нежелательных текстовых символов в Pygame? - PullRequest
0 голосов
/ 08 мая 2018

Я сейчас работаю над игрой, и на моем экране паузы она использует функцию рисования текста, чтобы отобразить «Приостановлено», а также то, что находится в моем инвентаре (список со строкой того, что было «подобрано»). ). Когда он рисует мой текст инвентаря, он отображает эти поля в виде символов, вот как это выглядит "У вас есть: [] 'ключ' []" Я пытался использовать 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()

edit: кажется, что {} for .format - это то, что заставляет блоки, которые я удалил, увидеть, правильно ли он отображает self.draw_text ("У вас есть:" + self.inv ... хотя это не удалось объединить, блоки куда ушли. Я также изменил шрифты, и он изменился с блоков на круглые скобки

1 Ответ

0 голосов
/ 09 мая 2018

Похоже, ваш шрифт не может отображать [ или ]. Попробуйте заменить ваши draw_text() аргументы:

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

1007 * Е.Г. *

>>> inv = ["key", "knife"]
>>> "You have:{}".format(inv)
"You have:['key', 'knife']"
>>> "You have " + ", ".join(inv)
'You have key, knife'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...