일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 헌법재판소
- 인권
- 사법부
- 고통에
- 파이썬 기초
- 부산광역시
- 공간밀도
- 주요일간지
- 점프
- 파이게임
- 맵
- 사법
- 연구하며
- python
- 정치
- 과학의과학
- 지금다시헌법
- Latent Dirichlet Allocation
- 공부
- 타인의
- 네트워크
- LDA
- 사회
- 헌법
- 글쓰기
- 파이썬
- 지금 다시
- 횡스크롤
- 응답하는
- pygame
- Today
- Total
RoNS 님의 블로그
[Pygame(파이게임)] 기본창 띄우기 본문
'언젠가는 게임을 만들어 보고 싶다.' 라는 생각이 있다.
지금 당장 게임 회사에 취직해, 게임으로 돈을 벌고 싶다는 것까지는 아니지만,
난 단순하게 재미로 내가 만든 세계관에서 가상의 플레이어가 움직이게 하고 싶었다.
다행히도, 내가 주로 사용하는 언어인 파이썬에서 게임을 만들 수 있는 모듈인 "Pygame"이 있었기 때문에,
앞선 목표를 위해 Pygame을 공부하고자 한다!
나는 이 책과 챗지피티, 여러 블로그들을 참고하여 공부를 하고있다.
주피터 노트북(Jupyter Notebook)을 사용해서 코드를 실행하고 있다. 일반적인 파이썬 파일(.py)과는 조금 다르게 동작할 수 있지만, 대부분의 기능은 똑같이 사용할 수 있다.
이 글에서는 게임 창을 만들고, 그 안에 사각형 상자를 그리는 것까지 해볼 것이다.
pygame 을 사용하기위해서는 pygame을 내 환경에 설치해야한다.
!pip install pygame
(참고로 나는 2.5.1버전을 사용하고 있다.)
우선 창 만들기다. 전체코드는 아래와 같다.
import pygame
pygame.init()
pygame.display.set_caption("START!")
#스크린 정의 (가로 800, 세로 600)
screen = pygame.display.set_mode((800,600))
#clock 만들기 (초당 프레임 조절)
clock = pygame.time.Clock()
##게임 반복 구간
done = False
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done=True
#스크린 채우기
screen.fill((255,255,255))
#화면 업데이트
pygame.display.flip()
clock.tick(60)
pygame.quit()
게임 창을 만들기 위한 사전 준비인데도 생각보다 코드가 길다. 하나씩 알아보자.
- pygame.init()은 파이게임에서 사용할 모든 기능(화면,소리,이벤트 등)을 한 번에 초기화하는 함수로, 파이게임을 실행할 때 꼭 필요한 함수이다.
- pygame.display.set_caption("START!")에서는 화면창의 이름을 "START!"로 설정했다.
- pygame.time.Clock().tick(60) 은 화면 업데이트 속도를 말한다. 60은 1초당 60번 화면이 업데이트가 된다는 걸 의미한다(FPS라고도 한다.). 코드에서는 pygame.time.Clock()를 clock으로 변수로 저장한 후, 사용했다.
- screen.fill()은 화면을 하나의 색으로 채울 수 있도록 한다. (RGB값을 사용하기 때문에, (255,255,255)는 하얀색이다.)
- pygame.display.flip(). 모든 변경사항을 화면에 보여준다.
게임창이 떠있는 동안은 while 반복문 안에서의 코드만이 게임을 작동시킨다. 게임창에서 키보드나 마우스, 심지어 창닫기 버튼까지 이곳에서 하나하나 이벤트마다 일어나야 할 일을 설정해 주어야 한다.
- pygame.event.get()는 해당 반복에서 일어난 모든 이벤트들을 불러온다.
- pygame.QUIT은 그 많은 이벤트들 중 하나로, (창닫기 버튼을 눌러) 게임창을 끄려 했을때의 이벤트 타입이다.
때문에, 창닫기 버튼을 눌렀을때, while 반복문이 끝나고, pygame.quit()으로 코드가 끝난다.
마지막으로 사각형 하나만 더 그려보자.
#스크린 채우기
screen.fill(WHITE)
pygame.draw.rect(screen,(255,0,0),[400,200,10,10],0)
screen.fill() 아래에 위 코드를 작성해보자.
빨간색(255,0,0)으로 x좌표 400, y좌표 200에 크기 10x10으로 속이 모두 칠해진(0) 사각형이다.
그런데 뭔가 이상하다. y좌표가 200이었는데, 화면 중앙을 기준(y=300)으로 아래가 아니라 위에 사각형이 위치한다.
이것은 화면의 y좌표축이 위에서 아래 방향으로 되어 있기 때문이다.
이 점을 유의해서 이제 본격적으로 pygame 공부를 시작하자.
'Pygame' 카테고리의 다른 글
[Pygame(파이게임)] 캐릭터와 맵 적용 (0) | 2025.05.15 |
---|---|
[Pygame(파이게임)] 그림판 (0) | 2025.05.07 |
[Pygame(파이게임)] 플레이어 움직이기3 (점프 강약 만들기) (0) | 2025.04.30 |
[Pygame(파이게임)] 플레이어 움직이기2 (점프 만들기) (0) | 2025.04.24 |
[Pygame(파이게임)] 플레이어 움직이기1 (상하좌우 이동) (1) | 2025.04.24 |