나를 기록하다
article thumbnail
반응형

[chatgpt - python] 우주선 게임

만드는 과정

  1. 장비 : Mac OS, Intellij 이용
  1. 내용 : chatgpt에게 물어본 pygame 라이브러리를 이용한 우주선을 조종하여 외계인을 격추하는 게임 제작
  1. 시간 : 게임 구동 시험까지 총 5분

 

코드

import pygame
import sys
from random import randint

# 초기 설정
pygame.init()
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("간단한 슈팅 게임")
clock = pygame.time.Clock()

# 색상 정의
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
RED = (255, 0, 0)

# 우주선 설정
ship_width, ship_height = 40, 40
ship_x, ship_y = (WIDTH - ship_width) // 2, HEIGHT - ship_height - 10
ship_speed = 5

# 미사일 설정
missile_width, missile_height = 5, 10
missiles = []

# 외계인 설정
alien_width, alien_height = 40, 40
aliens = []
alien_spawn_time = 1000
pygame.time.set_timer(pygame.USEREVENT, alien_spawn_time)

# 게임 루프
while True:
    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_SPACE:
                missile_x, missile_y = ship_x + ship_width // 2 - missile_width // 2, ship_y
                missiles.append([missile_x, missile_y])
        if event.type == pygame.USEREVENT:
            alien_x, alien_y = randint(0, WIDTH - alien_width), 0
            aliens.append([alien_x, alien_y])

    # 키 입력 처리
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT] and ship_x > 0:
        ship_x -= ship_speed
    if keys[pygame.K_RIGHT] and ship_x < WIDTH - ship_width:
        ship_x += ship_speed

    # 미사일 이동
    for missile in missiles:
        missile[1] -= 10

    # 외계인 이동
    for alien in aliens:
        alien[1] += 5

    # 충돌 처리
    for alien in aliens:
        if alien[1] + alien_height > HEIGHT:
            aliens.remove(alien)
        for missile in missiles:
            if (alien[0] < missile[0] < alien[0] + alien_width or alien[0] < missile[0] + missile_width < alien[
                0] + alien_width) \
                    and (
                    alien[1] < missile[1] < alien[1] + alien_height or alien[1] < missile[1] + missile_height < alien[
                1] + alien_height):
                aliens.remove(alien)
                missiles.remove(missile)
                break

    # 화면 그리기
    screen.fill(WHITE)
    pygame.draw.rect(screen, GREEN, (ship_x, ship_y, ship_width, ship_height))

    for missile in missiles:
        pygame.draw.rect(screen, RED, (missile[0], missile[1], missile_width, missile_height))

    for alien in aliens:
        pygame.draw.rect(screen, RED, (alien[0], alien[1], alien_width, alien_height))

    # 화면 업데이트
    pygame.display.flip()
    clock.tick(60)

 

느낀 점

chatgpt 없이 유튜브나 구글링을 통해 만들었다면 최소 5시간은 넘게 걸렸을 것 같은데 질문 한 번만에 게임 구현이 가능하다는 사실이 그저 놀랍다. 물론 고퀄리티가 아닌 아주 basic한 게임이지만 말이다. 앞으로 공부하는데 유용하게 참고하면서 공부의 효율을 극대화할 수 있도록 노력해야겠다.

반응형
profile

나를 기록하다

@prao

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...