Python pygame.MOUSEBUTTONDOWN错误?

Python pygame.MOUSEBUTTONDOWN错误?,python,pygame,Python,Pygame,我试图分别捕获mousebuttonwon和MOUSEBUTTONUP事件,以帮助我完成单击和拖动代码。但当按下鼠标按钮时,pygame.MOUSEBUTTONUP事件也会捕获该事件 代码如下: import pygame LEFT = 1 running = 1 screen = pygame.display.set_mode((320, 200)) while running: event = pygame.event.poll() if event.type == pygame.

我试图分别捕获mousebuttonwon和MOUSEBUTTONUP事件,以帮助我完成单击和拖动代码。但当按下鼠标按钮时,pygame.MOUSEBUTTONUP事件也会捕获该事件

代码如下:

import pygame

LEFT = 1

running = 1
screen = pygame.display.set_mode((320, 200))

while running:
 event = pygame.event.poll()
 if event.type == pygame.QUIT:
     running = 0
 elif event.type == pygame.MOUSEBUTTONDOWN and event.button == LEFT:
     print "You pressed the left mouse button at (%d, %d)" % event.pos
 elif event.type == pygame.MOUSEBUTTONUP and event.button == LEFT:
     print "You released the left mouse button at (%d, %d)" % event.pos

 screen.fill((0, 0, 0))
 pygame.display.flip()
当我按下鼠标左键时,这两条语句都会在不应该打印的时候打印出来


知道为什么会这样吗

您的问题可能是因为Pygame安装有问题。 重新安装Pygame

请尝试此链接,而不是官方网站上的链接:。确保您下载了所使用的版Python的安装程序,以及安装Python的位数。您可以通过加载解释器并查看顶部的行来获得Python版本,该行的内容如下:

Python 2.7.2 (default, Jun 12 2011, 15:08:59) [XXXXXXXXXXXXXXXXXXXXXX] on win32

版本号在左边,位数在右边。

当我运行代码时,我不会得到与您相同的行为。我只在鼠标按下时获得MOUSEBUTTONDOWN事件,在鼠标上升时获得MOUSEBUTTONUP事件。然而,它似乎错过了其中一些。尽量避免在每次事件时填满屏幕和翻转缓冲区(你也会得到timer events IIRC),因为它会大大降低程序的速度,也许这会为你解决问题。代码对我来说也没有问题。但在更新屏幕之前,您可能应该读取所有挂起的事件,例如“对于pygame.event.get()中的事件”。我发现当我从pygame.locals import*from sys import exit LEFT=1 size=520630 running=1#screen=pygame.display.set#mode((320200))screen=pygame.display.set#mode(大小,可调整大小,32)添加VIDEORESIZE事件时,代码开始出错运行时:event=pygame.event.poll()if event.type==pygame.QUIT:running=0 if event.type==VIDEORESIZE:size=event.size pygame.display.set_标题(“窗口大小调整为”+str(event.size))elif event.type==pygame.MOUSEBUTTONDOWN和event.button==LEFT:print“您在(%d,%d)”%event.pos elif event.type==pygame.MOUSEBUTTONUP和event.button==left:print“您在(%d,%d)”释放了鼠标左键,%event.pos screen=pygame.display.set_模式(大小,可调整大小,32)screen.fill((0,0,0))pygame.display.flip()