【问题标题】:PyGame won't render _ text smbolPyGame 不会渲染 _ 文本符号
【发布时间】:2016-07-29 05:12:51
【问题描述】:

所以我正在尝试为我在 PyGame 中使用 python 制作的游戏制作菜单屏幕,除了屏幕本身的实际图像外,一切正常。我正在制作的游戏是基于文本的,当我在屏幕上用 _ 字符对一行文本进行 blit 时,它会被替换为一个空格。如果它不在空格或另一个_上,则不会发生这种情况。我确保我的字符串工作正常,它似乎只与 screen.blit() 命令的 font.render() 命令有关。我想知道是否有一些奇怪的功能可以防止某些符号被正常渲染或 blitted。感谢你给与我的帮助。 *注意:这仅适用于多行字符串渲染,请参阅代码了解我如何做到这一点。我分别渲染每一行,然后在它们全部渲染后更新屏幕。

    lines = multi_line_text.split("\n")
    tempplace = 0
    place = 5#starting pixel positioning
    while tempplace != len(lines):
        text = font.render(lines[tempplace], False, white, black)
        game_window.blit(text, (5, place))
        place = place + 15#Pixel positioning increment
        tempplace = tempplace + 1

【问题讨论】:

  • 你能不能展示你运行时得到的结果print(multi_line_text)
  • 我的意思是你想添加的任何多行字符串,我试图让问题保持一般性。
  • 您通过从上到下对整个矩形进行 blitting 来绘制线条。我敢打赌,您正在用下一个矩形覆盖下划线。要解决此问题,请增加线条之间的垂直距离。

标签: python pygame text-rendering


【解决方案1】:

你能分享你的代码吗,我正在用这个代码用pygame渲染“hello_world”

def draw_text(text, size=20, color=white, x=0, y=0):

    myfont = pygame.font.SysFont("monospace", size)
    label = myfont.render(text, 1, color)
    screen.blit(label, (x,y))

然后在你的while循环调用draw_text("hello_world")

【讨论】:

  • 不太一样。我将更改我原来的问题,使其更清楚。
【解决方案2】:

结束这个问题。我意识到我的错误在于我没有在行之间给文本留出足够的空间,从而切断了下一行的符号。很抱歉没有早点意识到这一点!我会接受这个作为答案并尽快关闭问题。

【讨论】:

    猜你喜欢
    • 2014-07-13
    • 2018-03-21
    • 1970-01-01
    • 2017-10-30
    • 2017-06-21
    • 2017-06-20
    相关资源
    最近更新 更多