강의노트 이벤트

강의노트 • 조회수 550 • 댓글 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( )
첫 글입니다.
다음 글
댓글
댓글로 소통하세요.