【问题标题】:Unwanted symbol in text when using blit from pygame使用 pygame 中的 blit 时文本中出现不需要的符号
【发布时间】:2020-11-12 20:53:40
【问题描述】:

当使用 blit 函数显示文件中的文本时(每行以数字结尾 - 在这种情况下为 1),它会显示一个不需要的框。文件中的所有行都会发生这种情况。我该如何摆脱它?

我知道如果在每行的末尾放一个逗号然后使用逗号分隔它可能会起作用。但是我想尝试这样做。

由于我的声誉,我无法发布图片,所以这里有一个链接:https://imgur.com/a/Hj3e3Nq

【问题讨论】:

  • 您应该将代码作为(格式正确的)文本发布在此处,而不是屏幕截图中。然后还发布console.log(line) 的结果以及您拥有的任何其他调试信息。

标签: python-3.x text pygame blit


【解决方案1】:

我只能猜测,因为您没有包含任何代码,但我怀疑这是从输入文件中读取的行尾字符或其他不可打印字符。也可能是制表符、换行符、NUL 等。

但是,转换测试 up\n 会产生以下输出:

你可以用代码自己测试一下:

font = pygame.font.Font( None,100 )
text_image = font.render( "whatever\n", True, (255,0,0) )  # <<-- HERE \n
screen.fill((255,255,255))
screen.blit( text_image, text_rect )
pygame.display.flip()

“坏字符”图形的差异,我会归结为不同的字体和/或操作系统。

也许在调用font.render()之前对字符串使用pythonstrip()函数。

【讨论】:

  • 嘿,我在 imgur 链接中发布了我的代码图片。它使用线缓存,这可能是问题所在。不在我的电脑上,所以无法进行任何测试
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-31
  • 1970-01-01
相关资源
最近更新 更多