因此,我目前在绘图应用程序中具有用于喷枪的代码。启用该功能后,它应该在画布上绘画,基本上就像喷枪一样。但是现在,我不知道如何使pygame检测到鼠标向下或鼠标向上并使其循环一段时间。这是代码:
def airbrush():
airbrush = True
cur = pygame.mouse.get_pos()
click = pygame.mouse.get_pressed()
while click == True:
pygame.draw.circle(gameDisplay, colorChosen, (cur[0] + random.randrange(brushSize), cur[1] + random.randrange(brushSize)), random.randrange(1, 5))
pygame.display.update()
clock.tick(60)
现在,我无法使用“单击时”。我应该用什么代替“点击”才能使它起作用,以便在按住鼠标时可以绘画,但是在鼠标“向上”时会停止?
答案 0 :(得分:0)
调用pygame.mouse.get_pressed()
时,将评估pygame.event.get()
返回的状态。 pygame.mouse.get_pressed()
的返回值是具有按钮状态的元组。
不要在函数中实现单独的事件处理。在主循环中进行事件处理:
done = False
while not done:
clock.tick(60)
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
airbrush()
pygame.display.flip()
在功能airbrush
中,评估当前帧的按钮(例如,左按钮)的当前状态:
def airbrush():
airbrush = True
cur = pygame.mouse.get_pos()
click = pygame.mouse.get_pressed()
if click[0] == True: # evaluate left button
pygame.draw.circle(gameDisplay, colorChosen, (cur[0] + random.randrange(brushSize), cur[1] + random.randrange(brushSize)), random.randrange(1, 5))