PyGame 代码在终端中有效但在 window 中无效
PyGame code works in terminal but not in window
我试图让一个句子中的字母一个字母一个字母地出现。我通过简单地在终端中打印字母来测试它,并且它有效。然后我试着把它放在屏幕上,它的作用很奇怪。它等待终端完成打印 然后 将所有字母同时显示在屏幕上。我正在尝试使用我在 https://github.com/cosmologicon/pygame-text 找到的“ptext” 当打印“字母”时,它输出 完全 我在终端中想要的内容,然后在尝试做同样的事情时使用 ptext 它不起作用。文本完成打印后,window 立即崩溃。
代码如下:
for letter in dialogue:
letterx += 20
sleep(0.2)
print(letter)
ptext.draw(letter, (letterx, 100), fontname="text/dialogue.ttf", fontsize=30)
完整代码可以在我的 Github repository. 找到,非常感谢任何帮助! :D
在循环结束时,紧跟在 ptext.draw
之后,只需添加:
pygame.display.update()
仅此而已。当然,这仍然会让您的 GUI 一直处于束缚状态。解决这个问题需要您使用 .after
,因此您绘制下一个字母,然后获得回调以绘制下一个字母,依此类推。
我试图让一个句子中的字母一个字母一个字母地出现。我通过简单地在终端中打印字母来测试它,并且它有效。然后我试着把它放在屏幕上,它的作用很奇怪。它等待终端完成打印 然后 将所有字母同时显示在屏幕上。我正在尝试使用我在 https://github.com/cosmologicon/pygame-text 找到的“ptext” 当打印“字母”时,它输出 完全 我在终端中想要的内容,然后在尝试做同样的事情时使用 ptext 它不起作用。文本完成打印后,window 立即崩溃。
代码如下:
for letter in dialogue:
letterx += 20
sleep(0.2)
print(letter)
ptext.draw(letter, (letterx, 100), fontname="text/dialogue.ttf", fontsize=30)
完整代码可以在我的 Github repository. 找到,非常感谢任何帮助! :D
在循环结束时,紧跟在 ptext.draw
之后,只需添加:
pygame.display.update()
仅此而已。当然,这仍然会让您的 GUI 一直处于束缚状态。解决这个问题需要您使用 .after
,因此您绘制下一个字母,然后获得回调以绘制下一个字母,依此类推。