반응형
이 글에서는 파이썬으로 갤러그 게임을 만드는 방법을 소개합니다. 갤러그는 1981년에 출시된 클래식 아케이드 게임으로, 플레이어는 전투기를 조종하여 적들을 쏘고 막아야 합니다. 이 게임은 간단한 조작이지만 전략적인 플레이가 요구되는 재미있는 게임입니다.
준비물
- 파이썬 인터프리터
- Pygame 라이브러리
- 이미지 편집 프로그램 (선택 사항)
설치
- 파이썬 인터프리터를 설치합니다.
- 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()
더 많은 기능을 추가해보세요.
- 다양한 적 유형 추가
- 아이템 추가
- 배경 음악 및 효과음 추가
- 점수 시스템 추가
반응형