2014-11-22 119 views
0

使用pygame.event.wait()来减少事件之间的系统开销。但我用它的方式似乎过滤了大部分事件。不能把它放在我的程序中的正确位置。Python Pygames等待事件

有人可以请看看并评论我是否使用它错了吗?

运行游戏循环

LEFT = 1

而真:

for event in pygame.event.get(): 

    if event.type == QUIT: 
     pygame.quit() 
     sys.exit() 

    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 
pygame.display.update() 
pygame.event.wait() 

回答

0

pygame.event.wait回报有问题的事件,并从队列中弹出它,所以你必须与对其进行管理其他:

for event in [pygame.event.wait()]+pygame.event.get(): 

    if event.type == QUIT: 
     pygame.quit() 
     sys.exit() 

    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