我是python的初学者,我正在使用pygame做一个项目。我在鼠标点击时启动了一个循环,它运行良好。但我无法阻止这种循环。我希望它在鼠标单击时停止,循环应该运行直到鼠标单击。我在下面提供了代码的大纲。任何人都可以帮我正确的代码吗?提前谢谢。
for event in pygame.event.get():
if (event.type == pygame.MOUSEBUTTONDOWN):
(mx,my)= pygame.mouse.get_pos()
if((mx>=375)&(mx<=425)&(my>=500)&(my<=550)): #to begin loop on mouse click#
while True:
---statements-----
if((mx>=300)&(mx<=350)&(my>=500)&(my<=550)): #to end loop on mouse click#
exit
else:
continue
答案 0 :(得分:1)
问题是,一旦你进入 while True 循环,你就不再等待来自pygame的鼠标事件了。在循环之前尝试检查新事件:
for event in pygame.event.get(pygame.MOUSEBUTTONDOWN):
mx, my = pygame.mouse.get_pos()
if 375 <= mx <= 425 and 500 <= my <= 550:
run = True
while run:
# statements
# ...
for event in pygame.event.get(pygame.MOUSEBUTTONDOWN):
mx, my = pygame.mouse.get_pos()
if 300 <= mx <= 350 and 500 <= my <= 550:
run = False
您可以直接过滤event.get call中的事件。
请注意,我重写了边界检查,因为逻辑和Python实际上是和,而&amp; 是按位操作。 Python也可以在检查范围时提供很酷的语法!