我创建了这个随机生成一个点的函数,但因为它在我的游戏循环中,所以该点不会停留在原来的位置。我希望它生成一个点,然后等待 6 秒并随机生成另一个点,但第一个点仍然在那里。因为屏幕上同时发生其他事情,所以我无法使用 time.sleep(6)
。任何解决此问题的帮助将不胜感激。
def random_spawn():
image_x = random.randrange(122, 476)
image_y = random.randrange(90, 350)
screen.blit(Green, (image_x, image_y))
最佳答案
不要使用time.sleep
。一般来说,在游戏编程中,您永远不想出于任何原因使用 time.sleep
。
就您而言,您只需要经常检查计时器或时钟,如果时间到了,则运行您的生成函数。
这是典型的游戏循环:
while True:
# get/handle player input
# update game state
# update sprites
# draw background
# draw sprites
# flip display
就您而言,当您更新游戏状态时,您应该检查自上次生成随机 Sprite 以来已经过去了多少时间。如果超过 6 秒,则生成一个新的。
它看起来像这样:
if time.clock() - last_spawn_time > 6.0:
random_spawn()
关于python - 随机生成图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30281320/