[PYTHON] pygame - 기초 init, event, flip
본문 바로가기
PYTHON/pygame

[PYTHON] pygame - 기초 init, event, flip

by 공돌이삼촌 2020. 6. 23.
반응형

파이썬에는 pygame이라는 파이썬용 게임 라이브러리가 있다.

 

라이브러리를 설치를 해보자.

터미널에서 아래 명령어를 실행해주자.

pip install pygame
pip install pygame

 

먼저 import를 하도록 하자

import pygame

 

pygame을 호출하는 init를 사용해주고

pygame.init()

 

게임 화면의 사이즈를 결정해주기 위해서 pygame의 display의 set_mode를 사용하여 크기를 정해주자.

가로 세로 크기는 바꾸기 편하게 변수로 지정해주는 것이 좋다.

# screen
winWidth = 400
winHeight = 300
screen = pygame.display.set_mode((winWidth, winHeight)) # display 모듈의 set_mode(윈도우크기튜플)

file.open이 있으면 close가 있어야 하듯

pygame의 화면을 실행시키면 당연히 종료 조건을 만들어 줘야한다.

while loop를 통해 종료 조건에 해당하는 event를 받을 때 running값에 false를 주어 반복을 종료한다. 

# close
running=True
while running :

    for event in pygame.event.get():  # 이벤트를 받아서
        if event.type == pygame.QUIT: # 종료 조건과 맞을때
            running = False

 

화면이 계속 업데이트가 될 수 있도록 아래 flip 또는 update를 사용하면 된다.

pygame.display.flip()
pygame.display.update()

이 때 두  command의 차이는 flip은 전체 surface 를 업데이트 하는 것이고, update는 특정 부분만을 update 하는 것이다. 따라서 pygame.display.update() 처럼 안에 아무것도 안 넣으면 전체 surface를 대상으로 하기 때문에 위 두 코드는 같은 동작을 하게 된다.

 

FPS는 주사율, 즉 초당 몇 번의 이미지를 나타내는지 나타내는 척도이며

game loop안에 넣어주어 화면의 주사율을 결정해준다. 

clock = pygame.time.Clock()
FPS = 60
clock.tick(FPS)

 

> 전체 code block

import pygame
pygame.init()

# setting
clock = pygame.time.Clock()
FPS = 60

# screen
winWidth = 400
winHeight = 300
screen = pygame.display.set_mode((winWidth, winHeight))


# close
running=True
while running :
    for event in pygame.event.get():  # 이벤트를 받아서
        if event.type == pygame.QUIT: # 종료 조건과 맞을때
            running = False
            
    clock.tick(FPS)
    pygame.display.flip()
반응형

'PYTHON > pygame' 카테고리의 다른 글

[PYTHON] pygame - 기초 event  (0) 2020.06.23

댓글