我知道pygame的screen.blit
并不支持多行,但是我无法找到解决方法。所有其他提出这个问题的线程都不能与我的代码一起工作。我该怎么做?你知道吗
我试着将响应分成两部分,在DisplayRoom.prompt
上使用splitline()
,然后让游戏分别加载两行,但是DisplayRoom.prompt.splitline()
没有打开`DisplayRoom.prompt文件从元组到列表,只返回它的值。你知道吗
screen.fill(background_colour)
txt_surface = userfont.render(text, True, color)
screen.blit(txt_surface, (100, 800))
response = promptfont.render(DisplayRoom.prompt, True, color)
screen.blit(response, (80, 300))
pygame.display.flip()
clock.tick_busy_loop(60) # limit FPS
当我定义DisplayRoom.prompt
时,我希望\n对它进行换行,但它不起作用,这就是我在这里的原因。你知道吗
它不是不支持多行的
Surface.blit
。blit
只需在另一个Surface
上画一个Surface
,它并不关心Surface
包含什么。你知道吗它是pygame.Font.render,不支持多行。文件明确指出:
因此,我不知道代码中的
DisplayRoom.prompt
是什么,但如果不是字符串,则肯定会失败:render
引发TypeError: text must be a unicode or bytes
。如果是一个带换行符的字符串,则换行符不会被呈现。你知道吗
必须拆分文本并分别渲染每一行。你知道吗
在下面的示例中,我创建了一个简单的函数
blitlines
,它演示了如何执行此操作。你知道吗这是屏幕上的结果。你知道吗
相关问题 更多 >
编程相关推荐