Pygame:鼠标点击后运行循环

时间:2013-07-16 10:06:29

标签: python pygame mouseclick-event

我想先点击鼠标后再运行一个循环。 我启动了一个名为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)

谢谢! 奥马尔

2 个答案:

答案 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

必然会在它开始之前停止循环。 希望这有帮助!