以下代码正在循环中-处于循环中-但当“inputStr”更改时,显示不会。不过,打印inputStr会产生预期的结果。在
defFnt = pygame.font.Font("CP437.ttf", 72)
txtToRndr = defFnt.render(inputStr,False, (0,0,0))
disp.blit(txtToRndr, (100,300))
下载链接;http://www.mediafire.com/download/a4hp9wgojxgiao9/functGroup.rar
Tags:
你的代码需要重构。正如另一个答案所说,主要问题是if块(尝试将其更改为
if True:
)。在我建议设置帧速率上限,但无条件地绘制每一帧,因为这样更简单、更健壮。你也不会在每一帧都清除屏幕,而且PyGame有很好的密钥标记(例如PyGame.K_ESCAPE),你应该用它来代替数字。每次绘图时也要加载字体;只需在程序顶部加载一次。在
这是我的PyGame basecode,它展示了一些最佳实践。在
draw()
函数中,添加fill
调用以清除屏幕,然后添加所有渲染代码的所有。在如果在渲染之前打印
inputStr
,它会打印一段时间然后停止,这意味着它在某个点之后不会被渲染,我想这是因为以下情况:结果一定是false,因此呈现新文本的代码不会执行:
如果在条件之后打印
Gnots
,它将打印它,直到它的长度比停止的长度多16个项目为止 将条件中的数字16更改为1000作为测试,而不是尝试键入,文本将更改相关问题 更多 >
编程相关推荐