본문 바로가기
개발일지/게임

게임개발일지 #1 - 파이썬으로 뱀서류 게임 만들어보기(feat.Pygame)

by Jay Anderson 2025. 5. 29.

문득

뱀파이어서바이벌 스러운 게임을 만들고 싶어짐

 

별 계획없이 무턱대고 시작해봄

먼저 메모장에 텍스트로 만들고 싶은 게임에 대해 간단히 기술.

(어떤형태의 맵인지, Enemies의 스폰 방식은 어떻게 할건지,

점수의 취득은 어떻게 할건지, 게임 Start와 End방식은 어떻게 할건지,

점수 계산방식 및 Score에 따라 어떤 Rewards가 있을지, 등...)

 

 

 

간단한 설계 도식도 그려보고..

당장 이렇게 개발할건 아니긴해

 

pip install pygame

 

일단 Pygame 설치하자..

그때 뜬 경고

 

Installing collected packages: pygame Successfully installed pygame-2.6.1 WARNING: You are using pip version 22.0.4; however, version 25.1.1 is available. You should consider upgrading via the 'C:\~~~\~~~\AppData\Local\Programs\Python\Python39\python.exe -m pip install --upgrade pip' command.

 

이건 그냥 pip버전이 오래됐단거임. 무시해도 되긴해

 

 

python -m pip install --upgrade pip

 

하지만 안무시

pip 업그레이드해줌

 

 

일단 맵부터 만들어보고 싶어졌다

 

 

import pygame
import sys

pygame.init()

# 화면 크기
SCREEN_WIDTH = 540
SCREEN_HEIGHT = 960
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("WASD 이동 구현")

# 색상
GREEN = (0, 255, 0)
BLACK = (0, 0, 0)

# 플레이어 설정
PLAYER_RADIUS = 20
player_pos = (SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2)  # 화면 중앙 고정

# 월드 좌표 오프셋 (맵 이동용)
world_x = 0
world_y = 0
speed = 5

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

# 메인 루프
running = True
while running:
    clock.tick(FPS)
    keys = pygame.key.get_pressed()

    # 입력 처리 - 맵이 반대로 움직임
    if keys[pygame.K_w]:
        world_y += speed
    if keys[pygame.K_s]:
        world_y -= speed
    if keys[pygame.K_a]:
        world_x += speed
    if keys[pygame.K_d]:
        world_x -= speed

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # 화면 초기화
    screen.fill(BLACK)

    # (나중에 등장할) 맵 요소는 world_x, world_y 기준으로 이동됨
    # 플레이어는 항상 화면 정중앙에 고정
    pygame.draw.circle(screen, GREEN, player_pos, PLAYER_RADIUS)

    pygame.display.flip()

pygame.quit()
sys.exit()

 

모바일 게임 느낌으로 해봄

해상도 변경하고 싶다면
SCREEN_WIDTH와 SCREEN_HEIGHT 조절해주면 됨

 

 

 

이런게 만들어져버렸다...

초기단계라 너무 대충 의식의 흐름대로 하다보니...

이제 어떻게 할까?

TOP

Designed by AndersonLab