본문 바로가기
IT 관련 Tip/Python

파이썬으로 갤러그 게임 만들기, 기초, 입문, 코딩, 코드, 강좌, 강의, 배우기, 공부, 개발, Python

by How Money 2024. 4. 10.

 

이 글에서는 파이썬으로 갤러그 게임을 만드는 방법을 소개합니다. 갤러그는 1981년에 출시된 클래식 아케이드 게임으로, 플레이어는 전투기를 조종하여 적들을 쏘고 막아야 합니다. 이 게임은 간단한 조작이지만 전략적인 플레이가 요구되는 재미있는 게임입니다.

 

준비물

  • 파이썬 인터프리터
  • Pygame 라이브러리
  • 이미지 편집 프로그램 (선택 사항)

 

설치

  1. 파이썬 인터프리터를 설치합니다.
  2. Pygame 라이브러리를 설치합니다.
pip install pygame

 

기본 틀 만들기

  • Pygame 모듈을 불러옵니다.
import pygame
  • 화면 크기를 설정합니다.
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
  • 화면을 초기화합니다.
pygame.init()
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
  • 게임 루프를 시작합니다.
while True:
    # 게임 코드

 

전투기 만들기

  • 전투기 이미지를 불러옵니다.
fighter_image = pygame.image.load("fighter.png")
  • 전투기 위치를 설정합니다.
fighter_x = SCREEN_WIDTH / 2
fighter_y = SCREEN_HEIGHT - fighter_image.get_height()
  • 전투기를 화면에 표시합니다.
screen.blit(fighter_image, (fighter_x, fighter_y))

 

적 만들기

  • 적 이미지를 불러옵니다.
enemy_image = pygame.image.load("enemy.png")
  • 적 위치를 설정합니다.
enemy_x = random.randint(0, SCREEN_WIDTH - enemy_image.get_width())
enemy_y = 0
  • 적을 화면에 표시합니다.
screen.blit(enemy_image, (enemy_x, enemy_y))

 

이동

  • 키 입력을 처리합니다.
for event in pygame.event.get():
    if event.type == pygame.QUIT:
        pygame.quit()
        sys.exit()

    if event.type == pygame.KEYDOWN:
        if event.key == pygame.K_LEFT:
            fighter_x -= 5
        elif event.key == pygame.K_RIGHT:
            fighter_x += 5
  • 전투기를 이동합니다.
fighter_x = min(max(fighter_x, 0), SCREEN_WIDTH - fighter_image.get_width())

 

발사

  • 공격 버튼을 누르면 미사일을 발사합니다.
if event.type == pygame.KEYDOWN:
    if event.key == pygame.K_SPACE:
        # 미사일 발사 코드
  • 미사일 이미지를 불러옵니다.
missile_image = pygame.image.load("missile.png")
  • 미사일 위치를 설정합니다.
missile_x = fighter_x + fighter_image.get_width() / 2 - missile_image.get_width() / 2
missile_y = fighter_y - missile_image.get_height()
  • 미사일을 화면에 표시합니다.
screen.blit(missile_image, (missile_x, missile_y))

 

충돌

  • 미사일과 적이 충돌하면 적을 제거합니다.
if missile_y < 0:
    missiles.remove(missile)

for enemy in enemies:
    if missile_y < enemy_y + enemy_image.get_height() and \
        missile_x > enemy_x and \
        missile_x < enemy_x + enemy_image.get_width():
        enemies.remove(enemy)
        missiles.remove(missile)

 

게임 오버

  • 적이 전투기에 충돌하면 게임 오버입니다.
for enemy in enemies:
    if enemy_y + enemy_image.get_height() > SCREEN_HEIGHT:
        # 게임 오버 코드
  • 게임 오버 메시지를 표시합니다.
game_over_font = pygame.font.Font(None, 64)
game_over_text = game_over_font.render("Game Over!", True, (255, 0, 0))
screen.blit(game_over_text, (SCREEN_WIDTH / 2 - game_over_text.get_width() / 2, SCREEN_HEIGHT / 2 - game_over_text.get_height() / 2))
  • 게임 루프를 종료합니다.
pygame.quit()
sys.exit()

 

더 많은 기능을 추가해보세요.

  • 다양한 적 유형 추가
  • 아이템 추가
  • 배경 음악 및 효과음 추가
  • 점수 시스템 추가