강의노트 이벤트
강의노트
• 조회수 545
• 댓글 0
• 수정 1주 전
- 이벤트
이벤트 종류
타입 | 동작 | 타입 | 동작 | |
---|---|---|---|---|
pygame.QUIT | 윈도우 x버튼이 눌리면 창을 닫음 | pygame.KEYDOWN | 키가 눌렸을때 발생 | |
pygame.KEYUP | 키가 올라 갔을때 발생 | pygame.ACTIVEEVENT | 마우스가 화면에 들어가거나 나가면 발생 | |
pygame.MOUSEMOTION | 마우스가 움직일때 발생 | pygame.MOUSEBUTTONUP | 마우스 버튼을 땔때 발생 | |
pygame.MOUSEBUTTONDOWN | 마우스 버튼이 눌렸을때 발생 | pygame.JOYAXISMOTION | 조이스틱 축이 변경했을때 발생 | |
pygame.JOYBALLMOTION | 조이스틱 볼의 움직임이 있을때 발생 | pygame.JOYHATMOTION | 조이스틱 hat이 바뀌면 발생 | |
pygame.JOYBUTTONUP | 조이스틱 버튼을 땔때 발생 | pygame.JOYBUTTONDOWN | 조이스틱 버튼을 누를때 발생 | |
pygame.VIDEORESIZE | 창크기를 조정하면 발생 | pygame.VIDEOEXPOSE | 화면을 다시 그려야하는 경우 발생 | |
pygame.USEREVENT | 사용자가 임의로 설정하는 이벤트 |
event 모듈
모듈 | 설명 | 모듈 | 설명 | |
---|---|---|---|---|
event.clear() | 이벤트 목록 제거 | event.custom_type() | 사용자 정의 이벤트 타입 생성 | |
event.Event() | 새로운 이벤트 생성 | event.EventType | 이벤트를 나타내는 객체 | |
event.EventType.type | 이벤트 타입 식별자 | event.EventType._ dict _ | 이벤트 타입 속성 | |
event.event_name() | 이벤트 유형의 이름 반환 | event.get() | 이벤트 메세지를 가져오고 대기열에서 제거 | |
event.get_blocked() | 이벤트 유형이 큐에서 차단된 경우 True 반환 | event.get_grab() | 입력 이벤트가 발생하면 True반환 | |
event.peek() | 이벤트 목록이 있는 경우 True 반환 | event.poll() | 반환된 이벤트는 큐에서 제거 | |
event.post() | 주어진 이벤트를 이벤트 큐 끝에 배치 | event.pump() | 내부 작업을 처리할 수 있도록 함 | |
event.set_allowed() | 주어진 이벤트 유형만 이벤트 큐에 들어감 | event.set_blocked() | 이벤트 유형이 큐에 배치되는 것을 차단 | |
event.set_grab() | 다른 작업하지 못하도록 잠금 | event.wait() | 대기 |
이벤트 모듈 함수
메소드 | 설명 | 메소드 | 설명 | |
---|---|---|---|---|
pump | 이벤트 핸들러를 내부적으로 처리 | get | 큐의 이벤트 가져오기 | |
poll | 큐에서 하나의 이벤트 가져오기 | wait | 이벤트 대기 | |
peek | 주어진 이벤트가 큐에서 대기중이면 참 반환 | clear | 큐의 모든 이벤트 목록 제거 | |
event_name | 이벤트 ID에서 이름 가져오기 | set_blocked | 특정 이벤트가 큐에 저장되지 않도록 한다 | |
set_allowed | 큐에 허용되는 목록 관리 | get_blocked | 허용되지 않는 이벤트 타입인 경우 참 반환 | |
set_grab | 다른 응용 프로그램과 입력 장치의 공유 제어 | get_grab | 입력 장치의 공유 여부 반환 | |
post | 큐에 새로운 이벤트 추가 | custom_type | 사용자 이벤트 타입 생성 | |
Event | 새 이벤트 객체 생성 | EventType | 이벤트를 나타내는 파이게임 객체 |
pygame.ACTIVEEVENT (액티브 이벤트)
게임 화면에 마우스가 있는지 참 반환
import pygame
pygame.init( )
#색설점
BLACK= ( 0, 0, 0)
WHITE= (255, 255, 255)
BLUE = ( 0, 0, 255)
RED = (255, 0, 0)
#화면설정
size = [680, 300]
screen = pygame.display.set_mode(size)
font= pygame.font.SysFont('Cambria', 25)
pygame.display.set_caption('ACTIVE EVENT 이벤트 확인하기')
#메인루프
running = True
activeFlag = True
clock= pygame.time.Clock( )
while running:
clock.tick(10)
#이벤트처리루프
for event in pygame.event.get( ):
if event.type == pygame.ACTIVEEVENT: # 마우스의 위치 확인
if event.gain == 1:
activeFlag = True
eventMessage = str(event)
if event.gain == 0:
activeFlag = False
elif event.type == pygame.QUIT:
running = False # 〈닫기〉 버튼 클릭하면
screen.fill(WHITE)
#화면에텍스트출럭
if activeFlag == True: # 마우스가 화면 위에 있으면
textSurface = font.render(eventMessage, True, BLUE, None)
textRect = textSurface.get_rect()
textRect.topleft = (50, 50)
screen.blit(textSurface, textRect)
# 마우스가 화면 밖에 있으면
else:
textSurface = font.render('Mouse is outside!!', True, RED, None)
textRect = textSurface.get_rect( )
textRect.topleft = (50, 50)
screen.blit(textSurface, textRect)
pygame.display.flip( )
pygame.quit( )
첫 글입니다.
다음 글
로그인 하면 댓글을 쓸 수 있습니다.