gpt4 book ai didi

python - 如何使用 pygame 通过单击鼠标来暂停循环?

转载 作者:太空宇宙 更新时间:2023-11-03 18:30:37 26 4
gpt4 key购买 nike

我是 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

最佳答案

问题是,一旦进入 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 调用中过滤事件。

请注意,我重写了边界检查,因为 Python 中的逻辑 and 实际上是 and,而 & 是按位运算。 Python 在检查范围时也允许使用很酷的语法!

关于python - 如何使用 pygame 通过单击鼠标来暂停循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22438518/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com