: 이 글은 velog 의
첫 글
이다
: 한 문장으로 짧고 굵게 의미전달을 하려고 한다
하지만 Unity와 비교해서보면 매우 초라하다...
게임 이름을 어떻게 짓지?
> Finding the rabbit ( 토끼를 찾아서 ... )
게임의 컨셉은 ?
게임의 진행 방식은?
혼자서 디자인은 어떻게?
도트 디자인
다소 허접해보이지만... 최선을 다함 😂
UML
Event
: 어떠한 행위에 대한 발동Update
: Event가 영향을 주는 값 변경Draw
: 바뀐 값을 프레임단위로 그림 구조
start.py
: 게임의 전반적인 실행 구조를 담고있다setting.py
: 설정값에 대한 정의가 있다sprites.py
: 객체(벽돌, 플레이어, 운석 등)에 대한 정의Source Overview
import 와 각 모듈의 메소드들을 살펴보자
import
import random
import pygame as pg
from settings import *
from sprites import *
별거 없다 .. 제일 중요한건 pygame 😂
Start
class Game:
def __init__(self): #변수, 게임 기본설정 초기화
def new(self): #게임을 시작
def run(self): #Loop def update(self): #게임을 갱신 시키는 부분
def events(self): #Event 처리에 대한
def draw(self): #화면에 그려주는 함수
def show_start_screen(self): #START 화면
def show_go_screen(self): #GAMEOVER/CONTINUE 화면
Sprites
# Player 클래스
class Player(pg.sprite.Sprite):
#Menu Slect 클래스
class Select(pg.sprite.Sprite):
#블록 클래스
class Platform(pg.sprite.Sprite):
#게임 내 아이템 클래스
class Item(pg.sprite.Sprite):
#토끼 머리 클래스
class Rabbithead(pg.sprite.Sprite):
#적 클래스
class Enemy(pg.sprite.Sprite):
#폭발 클래스
class Explosion(pg.sprite.Sprite):
#총알 클래스
class Bullet(pg.sprite.Sprite):
#이미지 sheet 및 이미지 로드를 위한 클래스
class Spritesheet:
sprite
에서는 게임 등장하는 모든 객체들에 대한 행동을 정의한다.pg.sprite.Srpite
를 상쇡받아 Start
에서 add 하여 사용한다.Setting
#base properties
TITLE = "Finding the rabbit"
WIDTH = 512
HEIGHT = 600
FPS = 60
SCORE = 'highscore.txt'
#Font
FONT_NAME = 'arial'
BULLY = "Bully.ttf"
SURFING = "Surfing Capital.ttf"
LIBERTY = "A Voice Liberty.ttf"
LIBERTY2 = "A_Voice_Liberty.otf"
#Player properties
PLAYER_ACC = 0.65
PLAYER_FRICTION = -0.15
PLAYER_GRAV = 0.5
PLAYER_JUMP = 15.5
#Select properties
SELECT_ACC = 4
#items
ITEM_SPAWN_PCT = 10
#Heads
HEAD_SPAWN_PCT = 14
# Starting platforms
PLATFORM_LIST = [(0, HEIGHT - 40),
(WIDTH / 2 - 50, HEIGHT * 3 / 4),
(125, HEIGHT - 350),
(350, 400),
(175, 300)] #total 5 List
#define colors
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
GRAY = (100, 100, 100)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
YELLOW = (255 ,255 ,0)
BROWN = (111, 109, 81)
#Image
STAND = "stand.png"
JUMP = "jump.png"
MOVE = "move.png"
BULLET = "bullet.png"
BULLET2 = "bullet2.png"
ENEMY = "meteorite.png"
JUMP = "jump.png"
JUMP_RIGHT = "jump_right.png"
BLOCK1 = "block1.png"
BLOCK2 = "block2.png"
BLOCK3 = "block3.png"
BACKGROUND = "background.png"
BOX = "box.png"
START_SCREEND = "start_screen.png"
START_LOGO = "start_logo.png"
MENU_SELECT = "menu_select.png"
HEAD = "head.png"
EXPLOSION = "explosion.png"
EXPLOSION2 = "explosion2.png"
ENDING_IMAGE = "ending.jpg"
여기 까지가 게임에 대한 전반적인 설명입니다
다음 글부터는 소스코드에 대한 설명을 하도록 하겠습니다