我有两个文本示例,但它们只是出现在彼此之上。我怎么做到第二个替换第一个?
if player_x_coor <= -2750:
text = font.render("text 1", True, WHITE)
screen.blit(text, [100, 150])
if player_x_coor <= -6310:
text = font.render("text 2", True, WHITE)
screen.blit(text, [100, 150])
如您所见,我尝试通过分配text = font.render("text 2", ...)
但是第一个测试仍然显示,以便第二个测试重叠。
答案 0 :(得分:2)
当您在屏幕上绘制时,已经存在的所有内容都不会自行清除。你必须用一些颜色使屏幕空白,让我们说黑色。一旦屏幕没有上一帧,您就可以从下到上重新绘制每个对象。
有可能,如果您在文本下面有一个简单的正方形,您试图替换,只绘制该正方形(而不是重绘整个屏幕),然后绘制新文本。但如果你不处理少量的形状,这会变得更加复杂。
通常,游戏循环用于每秒重绘帧x
次。模式如下:
def game_loop():
BLACK = (0, 0, 0)
while True:
# Do this loop, at maximum, 50 times a second
clock.tick(50)
# Clear screen
screen.fill(BLACK)
# Draw background
# characters
# user interface
# Get user input
答案 1 :(得分:-1)