Python 当我不断点击方块时,并不总是能检测到它

Python 当我不断点击方块时,并不总是能检测到它,python,pygame,Python,Pygame,我不知道我的代码发生了什么,但有时检测到我点击了某个东西,有时没有,下面是一些代码 导入pygame 从pygame.locals导入* 导入系统 pygame.init() modeX=500 modeY=600 rectangulo=pygame.Rect(1,1,2,2) num_dados=0 ven=pygame.display.set_模式((modeX,modeY)) fps=pygame.time.Clock() def fill(): 垂直填充((0,0,0)) def文本(t

我不知道我的代码发生了什么,但有时检测到我点击了某个东西,有时没有,下面是一些代码

导入pygame
从pygame.locals导入*
导入系统
pygame.init()
modeX=500
modeY=600
rectangulo=pygame.Rect(1,1,2,2)
num_dados=0
ven=pygame.display.set_模式((modeX,modeY))
fps=pygame.time.Clock()
def fill():
垂直填充((0,0,0))
def文本(txt、x、y、大小、字体、颜色):
myfont=pygame.font.SysFont(字体、大小)
myText=myfont.render(txt,0,(颜色))
ven.blit(myText,(x,y))
类hitbox\u things():
定义初始值(自、X、Y、宽度、高度):
全球埃斯克纳,num_dados
self.hitbox=pygame.Rect(X,Y,宽度,高度)
pygame.draw.rect(ven,(255,0255),self.hitbox)
如果rectangulo.collide rect(self.hitbox):
对于pygame.event.get()中的事件:
如果event.type==pygame.MOUSEBUTTONDOWN:
如果event.button==1:
num_dados=num_dados+1
def hi_th_精灵():
hitbox_事物(180,30,30,30)
hitbox_事物(40,30,30,30)
文本(str(int(fps.get_fps())、2、22、40、“Fixedsys”(255255))
文本(str(num_dados),100,22,40,“Fixedsys”(255255))
def ipp():
填充()
嗨,小精灵()
###################更新##########################
课程更新:
定义初始化(自):
尽管如此:
FPS=FPS.刻度(60)
rectangulo.left,rectangulo.top=pygame.mouse.get_pos()
ipp()
对于pygame.event.get()中的事件:
如果event.type==退出:
pygame.quit()
sys.exit()
pygame.display.flip()
ven=pygame.display.set_模式((modeX,modeY))
更新()
如果需要,您可以复制它。如果您再次单击粉红色按钮,您将看到在某些情况下无法正常工作,谢谢

[…]有时检测到我正在单击某个东西,有时没有[…]

这是由代码中的多个事件循环造成的。注意,获取所有消息并将其从队列中删除。 因此,其中一个事件循环随机获取事件,而另一个循环错过了它。并非所有的事件循环都能获得所有的事件。这导致一些事件似乎被错过了

获取主循环中的事件列表并将其传递给函数,以解决问题:

为True时:
# [...]
#获取事件列表
events=pygame.event.get()
#将排气口传递给ipp
ipp(活动)
#处理退出事件
对于事件中的事件:
如果event.type==退出:
pygame.quit()
sys.exit()
def高分辨率精灵(事件):
hitbox_事件(事件,180,30,30)
hitbox_事件(事件,40,30,30)
# [...]
def ipp(事件):
填充()
hi_th_sprites(活动)
class hitbox\u things():
定义初始(自我、事件、X、Y、宽度、高度):
# [...]
如果rectangulo.collide rect(self.hitbox):

对于事件中的事件:#向帖子添加垃圾以绕过质量过滤器是个坏主意,因为它不会以任何方式提高帖子的质量。相反,这会让人们投下否决票,并以比没有投票更快的速度结束这篇文章。请选择包含更多细节和/或更少代码的问题:将问题缩小到导致问题的行。请看和。很抱歉,如果我不把它放进去,它就不让我发表了,再也不会了