gpt4 book ai didi

python - 寻找解决 pygame 程序中逻辑错误的方法

转载 作者:太空宇宙 更新时间:2023-11-03 18:04:06 24 4
gpt4 key购买 nike

我正在自学 pygame,我正在尝试制作一个程序,在点击方 block 后切换方 block 的颜色。问题是,如果用户单击该方 block 超过 1/60 秒,则该方 block 将开始在蓝色和橙色(我选择的两种颜色)之间循环。这是应该切换方 block 颜色的代码:

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 的值不会更改。这意味着它每次执行游戏循环时都会执行该代码部分,这意味着从用户释放鼠标到最终移动光标,方 block 的颜色每 1/60 秒就会改变一次。关于如何解决这个问题有什么想法吗?

最佳答案

您应该保存鼠标按钮的当前“状态”——向上或向下。

如果它已关闭且之前已打开,请执行切换操作,并将状态设置为down。如果向下,则不执行任何操作。

如果释放鼠标按钮,则将状态重置为向上

关于python - 寻找解决 pygame 程序中逻辑错误的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27197045/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com