我一直在使用pygame创建游戏,我需要等到#39;为其中的某些东西发挥作用。我知道我可以很容易地做到这一点,只需创建一个while循环,并在每次我需要这个功能时一旦条件变为真,就会破坏,但如果我真的有一个我可以用来做这个的功能会好得多。我在这里写了这个函数,发现它没有用:
def wait_until(condition):
while True:
Quit() #These three lines are required to allow for the program to continue running
pygame.display.update()
CLOCK.tick(FPS)
if condition(): break
我认为这是调用函数时的结果,那一刻的条件状态被保存到变量' condition'作为布尔值。因此,如果之后发生变化,它就不会做任何事情。例如:
block = classes.sprite.Sprite(x = 50, y = 50)
wait_until(block.distance_to(pygame.mouse.get_pos()) <= 100)
与将False
传递给函数的情况相同,如果鼠标距离超过100像素。
那么我该怎么做才能解决这个问题,它真的让我感到难过,而且我不知道我能做些什么才能创造出能够做我想做的事情。
任何有关此事的帮助都会受到关注
答案 0 :(得分:3)
wait_until(lambda: block.distance_to(pygame.mouse.get_pos()) <= 100)
这会创建一个可以根据需要多次调用的函数来评估您的状况。