我自学pygame,而且我试图制作一个程序,一旦点击它就会切换正方形的颜色。问题是如果用户点击方块超过1/60秒,那么方块将开始在蓝色和橙色之间循环,这是我选择的两种颜色。这是应该切换方块颜色的代码:
if event.type == pygame.MOUSEBUTTONUP:
mousePos = pygame.mouse.get_pos()
if 130 < mousePos[0] < 250:
if 90 < mousePos[1] < 210:
if switching:
color = (255,100,0)
else:
color = (0,100,255)
switching = not switching
我推断它是因为这段代码在游戏循环中,而event.type的值没有改变,除非用户移动鼠标。这意味着它每次经过游戏循环时都会经过代码段,这意味着从用户释放鼠标开始,每隔1/60秒,方块的颜色会发生变化,直到它们最终移动光标。 。关于如何解决这个问题的任何想法?
答案 0 :(得分:1)
您应该保存鼠标按钮的当前“状态” - 向上或向下。
如果它已经关闭并且之前已经启动,请执行切换操作,并将状态设置为down
。如果是down
,则不执行任何操作。
如果释放鼠标按钮,请将状态重置为up
。
答案 1 :(得分:0)
认为您可以使用pygame.MOUSEBUTTONUP来检查是否单击了鼠标。您还可以将游戏循环外的颜色设置为蓝色=(255,100,0)等变量,这样您就可以更轻松地阅读并轻松进行后续编程。
if event.type== pygame.MOUSEBUTTONDOWN: