[Python_mini_projects_2] 슈팅게임 만들기 #4. pygame event
pygame key event
아래는 내가 게임을 만들 때 사용한 코드이다.
def keyEvent():
global score
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
pygame.quit()
elif event.key == pygame.K_LEFT:
move.x = -1 #move는 앞서 선언한 변수#(너비, 높이, x좌표, y좌표)
elif event.key == pygame.K_RIGHT:
move.x = 1
elif event.key == pygame.K_UP:
move.y = -1
elif event.key == pygame.K_DOWN:
move.y = 1
elif event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
move.x = 0
elif event.key == pygame.K_UP or event.key == pygame.K_DOWN:
move.y = 0
앞에 pygame에서 소개 했듯이 for event in pygame.event.get(): 을 써서 사용자가 발생시킨 이벤트를 가져와 for문을 돌리게 된다.
for문의 하위 if문을 돌면서 가져온 event에 대한 점검을 하게 된다.
가져온 이벤트 중 하나를 event라는 변수라고 생각하고, 해당 event의 type을 검사한다.
-
pygame.KEYDOWN
KEYDOWN은 말 그대로 키보드를 누르는 event이다.
-
pygame.KEYUP
KEYUP은 누른 키보드를 떼었을 때의 event이다.
-
if event.key == pygame.K_ESCAPE
누른 키가 escape(esc)인지 확인하는 라인이다.
-
pygame.quit()
quit값은 pygame이 종료되는 이벤트이다.
-
pygame.K_LEFT
왼쪽 방향키(오른쪽,위,아래 방향키도 설정 가능하다.)
move 변수는 내가 직접 선언한 (너비,높이,x좌표, y좌표)가 들어가 있는 변수이다. 따라서 K_LEFT일 때 player는 x좌표로 -1(왼쪽)을 움직이게 된다.
-
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
event.type이 KEYUP일 때 점검을 하는 라인이다. 만약 손을 뗀 키보드가 K_LEFT or K_RIGHT이라면 move.x = 0 을 통해 현재 x좌표에서 멈추게 되는 것이다.
K_UP, K_DOWN일 때는 move.y = 0이 된다.