我想先点击鼠标后再运行一个循环。 我启动了一个名为mouse_clicked的变量为false,然后在单击鼠标后将其更改为True。然而,这似乎并没有让事情发生。 这是我的代码:
import sys, pygame
size = width, height = 320, 240
screen = pygame.display.set_mode(size)
running = True
mouse_pressed = False
while running:
while mouse_pressed:
rect = pygame.Rect(10, 20, 30, 30)
pygame.draw.rect(screen, (255,0,0), rect)
pygame.display.flip()
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
mouse_pressed = True
if event.type == pygame.QUIT:
running = False
sys.exit(0)
谢谢! 奥马尔
答案 0 :(得分:2)
已编辑
移动你的循环:
while running:
rect = pygame.Rect(10, 20, 30, 30)
pygame.draw.rect(screen, (255,0,0), rect)
pygame.display.flip()
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
mouse_pressed = True
if event.type == pygame.QUIT:
running = False
while mouse_pressed:
# do your stuff
mouse_pressed = False
在您的版本中,整个循环永远不会启动,因为mouse_pressed
初始化为False。
答案 1 :(得分:1)
看起来你的第二个循环甚至没有启动:你正在启动mouse_pressed为False。因此,
while mouse_pressed
必然会在它开始之前停止循环。 希望这有帮助!