Skip to content
Snippets Groups Projects
Commit 5a6e3d99 authored by 김연수's avatar 김연수
Browse files

Update README.md

parent 84c32955
No related branches found
No related tags found
No related merge requests found
# 기말과제
게임제작 입문으로 많이 사용되는 pygame의 기본 구조와 사용법에 대해 알아보겠습니다.
Pygame은 비디오 게임 작성 용으로 설계된 크로스 플랫폼 Python 모듈 세트입니다.
여기에는 Python 프로그래밍 언어와 함께 사용하도록 설계된 컴퓨터 그래픽 및 사운드 라이브러리가 포함됩니다.
<시작>
Pygame이 깔려있지않다면 pip install pygame으로 설치해줍니다.
우선 pygame을 사용하려면 다음과 같은 구조로 사용해야합니다.
1. 게임 초기화
2. 게임창 옵션설정
3. 게임 내 필요한 설정
4. 메인이벤트 ->fps설정, 입력 감지, 화면그리기, 업데이트
5. 게임종료
<1> 게임 초기화
1.import로 pygame을 선언해준다.
```
import pygame
import pygame as pg
```
pygame모듈을 사용하려면 당연하게도 모듈을 import해줘야합니다.
pygame을 pg로 바꾸어 import pygame as pg같은 형태호
줄여서 표현하는 것이 편리합니다.
pygame을 초기화한다.
`pygame.init()`
<2> 게임 창 옵션 설정
`screen=pygame.display.set_mode([300,400])`
screen이라는 변수를 선언해줍니다.
가로 300 세로 400의 창을 생성하는 것을 의미합니다.
```
title= ”game1”
pygame.display.set_caption(title)
```
원하는 창의 이름도 정해줍니다.
<3> 게임 내 필요한 설정
3.pygame에서 사용할 전역 변수들을 선언한다.
pygame에서 기본이 될 여러가지 변수들을 선언하면
편리합니다.
```
go=True
clock=pygame.time.Clock()
```
루프의 반복을 위한 go변수를 만들고
화면의 Frame per Second를 정해줍니다.
clock변수를 이용해 정할 수 있습니다.
```
color1={0,0,0}
color2={255,255,255}
k=0
```
색깔을 RGB값으로 저장해둡니다. (black,white로 저장하였습니다.)
<4> 메인이벤트
pygame의 메인루프를 작성한다.
이제 게임 실행동안 발생한 이벤트 설정과 사용자의 게임 알고리즘을 작성 합시다.
일단 가벼운 예제로 시간이 지나면서 1초마다 배경 색깔이 바뀌는 알고리즘을 짜보겠습니다.
```
while go:
clock.tick(20)
```
go가True인 동안 반복합니다.
초당 화면이 몇번이 바뀔지 설정할 수 있는데 1초당 5번 바뀌도록 설정했습니다.
프레임이 너무 높으면 제대로 출력을 못할 수 있으니 주의합니다.
` for event in pygame.event.get(): `#실시간으로 행동을 받아옵니다. 이는 리스트형태로 저장됩니다.
이유는 한번에 여러가지의 이벤트가 들어올 수 있기 때문입니다.
게임 중간에 발생한 이벤트를 받아서 인덱스로 사용합니다.
` if event.type == pygame.QUIT:`
만일 발생한 이벤트가 pygame.QUIT이라면
` go=False`
go를False로 바꾸어 반복문을 멈춥니다.
```
k+=1
if k%2=0:
screen.fill(color1)
else:
screen.fill(color2)
```
원하는 배경색깔을 고를 수 있습니다.
` pygame.display.flip()`
pygame을 실행하려면 메인 루프의 마지막에는 반드시 이 문장을 적어 주어야 합니다.
<5> 게임종료
`pygame.quit()`
pygame을 종료시킵니다.
이렇게 pygame의 기본구조를 완성하였습니다
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment