Как сделать паузу в цикле с помощью мыши, используя pygame?
Я начинающий в 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
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.
Обратите внимание, что я переписал проверку границ, так как логика и в Python действительно, а & - побитовая операция. Python также позволяет использовать отличный синтаксис при проверке диапазонов!