제작로그 2 - pygame 의 기본구조
import pygame
SCREEN_X = 800 #게임창 x 크기
SCREEN_Y = 600 #게임창 y 크기
screen = pygame.display.set_mode((SCREEN_X,SCREEN_Y)) #게임 윈도우 생성
background = pygame.Surface(screen.get_size()) #게임 화면을 그릴 surface
done=True
while done: #이 루프를 벗어나면 게임이 종료됨
ev = pygame.event.get()
for event in ev:
if event.type ==pygame.QUIT: #창의 종료버튼이 눌렸을때 게임종료
done = False
if event.type == pygame.MOUSEBUTTONUP:
pass
if event.type == pygame.MOUSEMOTION: #마우스를 움직이고 있음
print(pygame.mouse.get_pos()) #현재 마우스 커서의 위치를 구함
if event.type == pygame.KEYDOWN: #키보드의 키가 눌렸음
if event.key == pygame.K_r: # 'r' 키가 눌렸음
pass
if event.key == pygame.K_s: # 's' 키가 눌렸음
pass
break
keys=pygame.key.get_pressed() #키보드가 눌렸는지 확인
if keys[pygame.K_LEFT]: #왼쪽 화살표 키가 눌렸을 경우
pass
if keys[pygame.K_RIGHT]: #오른쪽 화살표 키가 눌렸을 경우
pass
if keys[pygame.K_SPACE]: #스페이스바 키가 눌렸을 경우
pass
#적과 아군 캐릭터 표현. 점수 표현은 이곳에서
screen.blit(background,(0,0)) #background 의 화면을 스크린에 복사
pygame.display.flip() #화면에 표시함
pygame 으로 게임을 만들때 소스는 위와 같은 기본 구조를 갖게 됩니다.
소스에 간단한 주석을 달아 놨으니 보시면 쉽게 내용을 파악하실 수 있을 겁니다.
기본적으로 while 루프를 돌면서 게임이 계속 실행되며 위의 while 문을 벗어나면 게임이 종료되는 구조입니다.
따라서 게임에서 캐릭터 이동 등의 모든 구현은 while 루프 안에서 이루어 집니다.
>
마우스와 키보드의 입력은 pygame.event.get() 함수로 이벤트를 처리하는 것이 일반적이지만, 게임에서 키보드를 누르고 있을때 계속 작동하고 떼었을때 멈추는 구현을 위해서는 pygame.key.get_pressed() 함수를 이용해서 직접 키 값을 처리 하는게 쉽습니다.
키코드의 값은 https://www.pygame.org/docs/ref/key.html 를 참고 하세요.
댓글
댓글 쓰기