2011-09-23 2 views
0

나는 클릭과 드래그 코드를 도와주기 위해 MOUSEBUTTONDWON 및 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() 

내가 마우스 왼쪽 버튼을 클릭하여 모두가해서는 안 때 문이 인쇄합니다.

왜 이런 일이 발생하는지 알고 싶습니다.

+0

코드를 실행할 때 나는 당신과 같은 행동을하지 않습니다. 마우스를 올리면 MOUSEBUTTONDOWN 이벤트를, 마우스를 올리면 MOUSEBUTTONUP 이벤트 만받습니다. 그러나, 그들 중 일부는 그리워하는 것 같습니다. 화면을 채우지 않고 모든 이벤트 (당신은 또한 타이머 이벤트 IIRC를받습니다)에서 버퍼를 뒤집는 것을 피하십시오. 프로그램이 많이 느려지므로 어쩌면 문제가 해결 될 것입니다. –

+0

코드가 문제없이 저에게 효과적입니다. 하지만 화면을 업데이트하기 전에 보류중인 모든 이벤트를 읽어야합니다 (예 : "for event in pygame.event.get()"). – maxy

+0

나는 코드가 SYS 가져 오기 출구에서 * 내가 pygame.locals에서 너무 – kemil

답변

0

파이 게임 설치에 문제가있어 문제가 발생한 것일 수 있습니다. 파이 게임을 다시 설치하십시오.

공식 웹 사이트 (link) 대신이 링크를 사용해보십시오.을 사용하는 Python 버전의 설치 프로그램을 다운로드하고에 Python을 설치 한 비트 수는 이어야합니다. 당신은 통역을로드와 같은 읽고 외형을 보면 파이썬의 버전을 얻을 수 있습니다 : 버전 번호가 왼쪽에

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

을하고, 비트 수는 오른쪽에 있습니다.