Python

(파이썬) 파이썬 게임: 스페이스 인베이더 Space Invaders

코딩ABC 2024. 1. 1. 21:31
반응형

이 코드는 Pygame을 사용하여 간단한 2D 게임을 만드는 예제입니다.

코드를 실행하면 창이 열리고 키보드의 좌우 키로 플레이어를 움직일 수 있습니다. 적이 화면 위에서 아래로 내려오면서 플레이어와 충돌하면 게임이 종료됩니다.

 

이 프로그램을 실행하기 위해서는 "pygame" 모듈이 설치되어 있어야 합니다.

pip install pygame

 

import pygame
import random

# 초기화
pygame.init()

# 화면 크기 설정
screen_width = 600
screen_height = 400
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("Space Invaders")

# 플레이어 설정
player_size = 50
player_x = screen_width // 2 - player_size // 2
player_y = screen_height - 70
player_speed = 5

# 적 설정
enemy_size = 30
enemy_speed = 3
enemies = []

def draw_player(x, y):
    pygame.draw.rect(screen, (0, 128, 255), [x, y, player_size, 10])

def draw_enemy(x, y):
    pygame.draw.rect(screen, (255, 0, 0), [x, y, enemy_size, enemy_size])

clock = pygame.time.Clock()

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

    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT] and player_x > 0:
        player_x -= player_speed
    if keys[pygame.K_RIGHT] and player_x < screen_width - player_size:
        player_x += player_speed

    screen.fill((0, 0, 0))

    # 적 추가
    if random.randint(1, 100) < 2:
        enemies.append([random.randint(0, screen_width - enemy_size), 0])

    # 적 이동
    for enemy in enemies:
        enemy[1] += enemy_speed
        draw_enemy(enemy[0], enemy[1])

    # 충돌 검사
    for enemy in enemies:
        if (
            player_x < enemy[0] < player_x + player_size
            and player_y < enemy[1] < player_y + 10
        ):
            running = False

    draw_player(player_x, player_y)

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

 

실행된 화면을 캡처한 이미지입니다.

키보드로 좌우로 움직이면서 내려오는 블록을 피하면됩니다. 블록과 충돌하면 게임이 종료됩니다.

(파이썬) 파이썬 게임: 스페이스 인베이더 Space Invaders

 

 

반응형