오늘은 대충 나의 기획부터 알려주려고 한다.
우선 나는 엔터 더 건전이나 리스크 오브 레인 처럼 2D 도트 로그라이크류의 게임을 좋아한다.
하지만 이런 게임들은 보통 맵이 랜덤으로 짜여지고 많은 것들을 구현해야 하기 때문에 시작은 밑에 있는 슈퍼 미트 보이같은 맵이 정해져 있는 플랫포머 게임을 만들려고 한다.
python을 사용하는 게임 엔진 중에서 대표적인 pygame과 cocos2d 둘 중 하나를 이용하여 게임을 만드려고 했는데 이것저것 찾아보니 cocos2d가 더 게임 짜기는 좋은데 진입장벽이 높고 아직 한글로 된 문서는 커녕 영어로 된 문서도 적다고 하여 비교적 입문이 쉽고 관련 문서들이 많은 pygame으로 게임을 만들기로 결정했다.
그리고 아이디어를 생각해보다가 번뜩 생각이 났다.
내가 과제를 제출하러 가는 길을 여러 장애물이 막고 있어서 이 장애물들을 뚫고 교수님한테 도착하는 것을 목표로 하는 게임이 딱 떠올랐다.
그래서 그 주제로 이제 내가 구현해야할 기본적인 것들을 적어봤다.
- 맵 : 배경화면 적용시키기, 발판 설치하기, 장애물 설치하기, 플레이어가 출구로 도착하면 다음 맵으로 바꾸기
- 플레이어 : 움직이기, 점프하면 중력이 있는 것처럼 떨어지기, 발판위에 서있기
- 아이템 : 플레이어의 능력치를 강화시키는 여러 아이템 생성
- 입구, 출구 : 출구와 접촉하면 다음 맵의 입구에서 플레이어 생성
우선 이정도로 생각하고 오늘은 가장 처음 pygame을 실행해서 화면을 띄우는 것 까지 하려고 한다.
우선 pip를 이용하여 pygame을 설치하자.
난 이미 설치했기 때문에 설치했다고 뜬다.
import pygame
import sys
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
white = (255, 255, 255)
black = (0, 0, 0)
pygame.init()
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
player_pos_x = 100
player_pos_y = 100
clock = pygame.time.Clock()
while True:
clock.tick(60)
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
key_event = pygame.key.get_pressed()
if key_event[pygame.K_LEFT]:
player_pos_x -= 1
if key_event[pygame.K_RIGHT]:
player_pos_x += 1
if key_event[pygame.K_UP]:
player_pos_y -= 1
if key_event[pygame.K_DOWN]:
player_pos_y += 1
screen.fill((0, 0, 0))
pygame.draw.circle(screen, (255, 255, 255), (player_pos_x, player_pos_y), 20)
pygame.display.update()
코드를 이렇게 하고 창을 실행하면
다음과 같이 하얀색 동그라미인 player가 생성되고 방향키로 이동하면 천천히 움직인다!!
오늘은 여기까지 써야겠다.
'프로그래밍 > pygame' 카테고리의 다른 글
Pygame 도전기 5 - 장애물 만들기 (0) | 2020.01.09 |
---|---|
Pygame 도전기 4 - 맵 짜기 (0) | 2020.01.09 |
Pygame 도전기 3 - player 움직임 구현 (0) | 2020.01.08 |
Pygame 도전기 - 2(그리드 만들기) (2) | 2020.01.06 |
Pygame에 도전하다 (0) | 2019.10.22 |