Python 等待鼠标点击被解除的方法?

Python 等待鼠标点击被解除的方法?,python,pygame,click,Python,Pygame,Click,我试着做一个这样的按钮: if button.collidepoint(mouse_pos) and mouse_down[0]==1: toggle() 我遇到的问题是,由于我的鼠标点击持续时间,每一帧都会前后切换。所以我试着加上这个,这样计算机就会等待鼠标被提起 While True: if mouse_down[0]==0: break 现在这是一个令人崩溃的游戏。谁能告诉我为什么?如果我添加 pygame.time.delay(17) 除此之外,如果

我试着做一个这样的按钮:

if button.collidepoint(mouse_pos) and mouse_down[0]==1:
    toggle()
我遇到的问题是,由于我的鼠标点击持续时间,每一帧都会前后切换。所以我试着加上这个,这样计算机就会等待鼠标被提起

While True:
    if mouse_down[0]==0:
        break
现在这是一个令人崩溃的游戏。谁能告诉我为什么?如果我添加

pygame.time.delay(17)
除此之外,如果有人能告诉我一种等待鼠标被提起的方法,我也将不胜感激。

它会“崩溃”,因为你无法处理事件。请参阅或。
您必须处理应用程序循环中的事件。分别见:

对于游戏的每一帧,您都需要对事件队列进行某种调用。这确保了您的程序可以在内部与操作系统的其余部分交互

如果要等待单击鼠标,则必须处理循环中的事件

无论如何,如果您只想在单击鼠标按钮后切换一次,则需要使用鼠标事件。单击鼠标按钮时,
MOUSEBUTTONDOWN
事件发生一次,松开鼠标按钮时,
MOUSEBUTTONUP
事件发生一次。该对象有两个属性,提供有关鼠标事件的信息
pos
是存储单击位置的元组<代码>按钮存储单击的按钮。每个鼠标按钮都关联一个值。例如,鼠标左键、鼠标中键、鼠标右键、鼠标滚轮向上、鼠标滚轮向下的属性值分别为1、2、3、4、5。当按下多个键时,会发生多个鼠标按钮事件。进一步的解释可以在模块的文档中找到

例如:

run=True
运行时:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
如果event.type==pygame.MOUSEBUTTONDOWN:
如果button.collidepoint(event.pos)和event.button==1:
切换()
另请参见

It“崩溃”,因为您没有处理事件。请参阅或。
您必须处理应用程序循环中的事件。分别见:

对于游戏的每一帧,您都需要对事件队列进行某种调用。这确保了您的程序可以在内部与操作系统的其余部分交互

如果要等待单击鼠标,则必须处理循环中的事件

无论如何,如果您只想在单击鼠标按钮后切换一次,则需要使用鼠标事件。单击鼠标按钮时,
MOUSEBUTTONDOWN
事件发生一次,松开鼠标按钮时,
MOUSEBUTTONUP
事件发生一次。该对象有两个属性,提供有关鼠标事件的信息
pos
是存储单击位置的元组<代码>按钮存储单击的按钮。每个鼠标按钮都关联一个值。例如,鼠标左键、鼠标中键、鼠标右键、鼠标滚轮向上、鼠标滚轮向下的属性值分别为1、2、3、4、5。当按下多个键时,会发生多个鼠标按钮事件。进一步的解释可以在模块的文档中找到

例如:

run=True
运行时:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
如果event.type==pygame.MOUSEBUTTONDOWN:
如果button.collidepoint(event.pos)和event.button==1:
切换()

另请参见

它是。你的回答很有启发性,但我只找到了一个pygame.time.delay,在切换得到我需要的东西之后。谢谢你的关心!它是。你的回答很有启发性,但我只找到了一个pygame.time.delay,在切换得到我需要的东西之后。谢谢你的关心!