파이 게임에서 사용자의 마우스 이벤트 시간을 계산하고 싶습니다. 사용자가 마우스를 약 15 초 동안 움직이지 않으면 화면에 텍스트를 표시하고 싶습니다. 나는 그것에 대한 time
모듈을 시도했지만 작동하지 않습니다.파이 게임 마우스 이벤트의 파이썬 시간 카운터
import pygame,time
pygame.init()
#codes
...
...
font = pygame.font.SysFont(None,25)
text = font.render("Move your mouse!", True, red)
FPS = 30
while True:
#codes
...
...
start = time.time()
cur = pygame.mouse.get_pos() #catching mouse event
end = time.time()
diff = end-start
if 15 < diff:
gameDisplay.blit(text,(10,500))
pygame.display.update()
clock.tick(FPS)
pygame.quit()
quit()
출력 결과가 좋지 않아 사용자가 마우스를 움직이지 않으면 계산 방법을 모르겠습니다.
특수 영역에 사용자의 마우스가있을 때 텍스트를 쓰고 싶다면 다음과 같이 작동합니다.
if 100 < cur[0] < 200 and 100 < cur[1] < 200:
gameDisplay.blit(text,(10,500))
하지만 어떻게 계산합니까? 나는 심지어 파이썬에게 말하는 방법을 찾지 못했다. 사용자의 마우스는 같은 좌표에있다. 그렇지 않으면 마우스 좌표가 바뀌면 타이머를 시작하고 15보다 큰 경우 텍스트를 인쇄한다.
편집 : 당신은, 당신은 마우스 이벤트를 잡기, 그럼 어떻게 마우스의 좌표가 변경되지 않는 경우, 파이썬에게 타이머를 시작하는 기능을 가지고 가정, 파이 게임 모듈없이 정상 파이썬을 가정 할 수있다 시간이 15 초보다 길면 텍스트를 인쇄 한 다음 타이머를 새로 고칩니다.
현재 코드는 무조건'start = time '을 설정합니다.time()'을 루프의 최상위에 놓는다. 그래서 조금 늦게 계산 된'diff = end-start'는 항상 상대적으로 작은 숫자가 될 것이다. – martineau