유저들의 입력받기
Event란 유저들에게 입력을 받는 것이다.
유저가 키보드를 누르거나, 누르다가 떼거나, 떼거나 마우스를 클릭하거나 꾹 누르다 떼거나 등의 입력들이다.
이런 Event들을 받아서 화면의 색을 바꾸는 기능을 만들어보자
import pygame
import sys
#pygame 초기화
pygame.init()
#윈도우 화면 크기
size = (800, 600)
pd = pygame.display
screen = pd.set_mode((size))
#윈도우 상단 제목
pd.set_caption("Event Test")
running = True
#초기 배경 색 (흰색)
screen.fill((255,255,255))
pd.flip() #화면 업데이트
#루프 시작
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
#키를 눌렸을 때 일어나는 이벤트
elif event.type == pygame.KEYDOWN:
#ESC를 누르면 게임 종료
if event.key == pygame.K_ESCAPE:
running = False
#스페이스를 누르면 화면이 검은색으로 바뀌며 'Space KeyDown' 출력
elif event.key == pygame.K_SPACE:
print("Space KeyDown")
screen.fill((0,0,0))
pd.flip()
#마우스를 눌렸을 때 일어나는 이벤트
elif event.type == pygame.MOUSEBUTTONDOWN:
#버튼 값이 1일 때는 왼쪽 마우스를 클릭했다는 것
if event.button == 1:
print("Left Mouse Click")
screen.fill((255,255,255))
pd.flip()
pygame.quit()
sys.exit()
pygame.display의 set_mode나 pygame.display.set_mode는 튜플로 인자를 전달받기 때문에 괄호가 두 개인 것을 꼭 주의해야 한다.
실행해 보면 초기화면은 흰 바탕으로 시작되고, SpaceBar 키를 누르면 배경이 검은색으로 변한다.
다시 왼쪽 마우스를 클릭하면 배경이 검은색으로 변하는 걸 볼 수 있다.
이벤트 종류
- QUIT : x버튼을 누르거나 시스템 종료 명령을 수신할 때 발생
- KEYDOWN : 키보드의 키를 누를 때 발생
- KEYUP : 키보드의 키를 뗄 때 발생
- MOUSEBUTTONDOWN : 마우스 버튼을 클릭할 때 발생
- MOUSEBUTTONUP : 마우스 버튼을 뗄 때 발생
- MOUSEMOTION : 마우스를 움직일 때 발생
- MOUSEWHEEL : 마우스 휠을 움직일 때 발생
- VIDEORESIZE : 윈도우 크기가 변경될 때 발생
- VIDEOEXOPSE : 일부 렌더링 된 내용이 보일 때 발생
- USEREVENT : 사용자 정의 이벤트, 사용자가 원하는 시간에 이벤트를 생성하여 사용가능
이벤트 Key 사용방법
KEYDOWN, KEYUP
-pygame.K_(키 종류)로 사용
ex) pygame.K_SPACE는 스페이스바가 눌리거나 떼 졌다는 뜻
MOUSEBUTTON 관련
event.button이 숫자로 입력된다.
1 - 마우스 왼쪽 버튼
2 - 휠 버튼
3 - 오른쪽 버튼
4 - 휠을 위로 굴리는 행동
5 - 휠을 아래로 굴리는 행동
'Python > pygame' 카테고리의 다른 글
파이썬으로 게임 만들기(Pygame) - 5. 애니메이션과 프레임 (0) | 2024.06.15 |
---|---|
파이썬으로 게임 만들기(Pygame) - 4. 이미지 로딩 및 표시하기 (1) | 2024.06.10 |
파이썬으로 게임 만들기(Pygame) - 2. Pygame 기초 (0) | 2024.06.10 |
파이썬으로 게임 만들기(Pygame) - 1. Pygame 설치 (0) | 2024.06.10 |