갤러그 비스무리한 게임 만들어 보기
나: 갤러그 게임과 비슷한 코드를 알려줘 |
chatGPT: 물론입니다! 갤러그와 비슷한 슈팅 게임을 만들기 위한 간단한 코드 예시를 드리겠습니다. 예를 들어, Python과 Pygame을 사용하여 간단한 2D 슈팅 게임을 만들 수 있습니다. 아래는 우주선과 적의 이동 및 충돌 감지 코드 예시입니다. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
import pygame import random # 게임 초기화 pygame.init() screen = pygame.display.set_mode((800, 600)) pygame.display.set_caption("Space Shooter") # 이미지 불러오기 player_img = pygame.image.load("player.png") enemy_img = pygame.image.load("enemy.png") # 적 생성 enemies = [] for i in range(10): enemy = { "img": enemy_img, "x": random.randint(0, 800), "y": random.randint(50, 200), "speed": 2 } enemies.append(enemy) # 우주선 생성 player = { "img": player_img, "x": 400, "y": 500, "speed": 5 } # 이동 함수 def move_player(x, y): player["x"] += x player["y"] += y if player["x"] < 0: player["x"] = 0 elif player["x"] > 736: player["x"] = 736 if player["y"] < 0: player["y"] = 0 elif player["y"] > 536: player["y"] = 536 def move_enemy(enemy): enemy["y"] += enemy["speed"] if enemy["y"] > 600: enemy["x"] = random.randint(0, 800) enemy["y"] = random.randint(50, 200) # 충돌 함수 def is_collision(enemy, player): distance = ((enemy["x"] - player["x"]) ** 2 + (enemy["y"] - player["y"]) ** 2) ** 0.5 if distance < 27: return True else: return False # 게임 루프 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]: move_player(-player["speed"], 0) elif keys[pygame.K_RIGHT]: move_player(player["speed"], 0) elif keys[pygame.K_UP]: move_player(0, -player["speed"]) elif keys[pygame.K_DOWN]: move_player(0, player["speed"]) # 이동 처리 for enemy in enemies: move_enemy(enemy) # 충돌 처리 for enemy in enemies: if is_collision(enemy, player): running = False # 그리기 screen.fill((0, 0, 0)) for enemy in enemies: screen.blit(enemy["img"], (enemy["x"], enemy["y"])) screen.blit(player["img"], (player["x"], player["y"])) pygame.display.update() # 게임 종료 pygame.quit() |
이 코드면 게임 실행이 가능할까요? 혹시나 하는 마음에 한번 더 확인 차 물어봅니다.
나: 이 코드면 게임 실행이 가능해?? |
chatGPT: 위 코드는 게임 실행이 가능하지만, 동작하지 않을 수도 있습니다. 예를 들어, “player.png” 및 “enemy.png” 이미지 파일이 없거나 해당 경로에 없을 경우 이미지가 로드되지 않아 게임이 실행되지 않을 수 있습니다. 따라서, 코드를 실행하기 전에 이미지 파일을 준비하고 해당 경로에 올바르게 배치해야 합니다. 또한, 코드를 실행하는 운영 체제나 환경에 따라 추가적인 설치나 설정이 필요할 수도 있습니다. 또한, 이 코드는 단순한 예시일 뿐이며 게임을 완전히 구현하려면 더 많은 코드와 기능이 필요할 수 있습니다. |
이미지 파일이 없어서 실행되지 않을 수 도 있다고 합니다???
그림을 어디서 찾아야 할지 다시 질문해 보았습니다.
나: 게임에 바로 사용 가능한 이미지를 추천해줘 |
chatGPT: 저작권 문제가 없는 이미지를 바로 사용할 수 있는 것은 아니지만, 공개적으로 사용 가능한 이미지들 중에서 게임에 바로 사용 가능한 것을 몇 가지 추천해드립니다: 우주 배경: https://pixabay.com/ko/vectors/%EC%9A%B0%EC%A3%BC-%EB%B0%B0%EA%B2%BD-%EA%B3%B5%EA%B0%9C-%EB%B0%94%EA%BE%B8-2359437/ 우주선: https://pixabay.com/ko/illustrations/%EC%9A%B0%EC%A3%BC%EC%84%A0-%EB%B0%B0%EA%B2%BD-%EC%9D%B4%EB%AF%B8%EC%A7%80-152282/ 외계인: https://pixabay.com/ko/illustrations/%EC%99%B8%EA%B3%84%EC%9D%B8-%EB%82%98%EB%8A%94-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EB%B0%B0%EA%B2%BD-2324042/ 레이저: https://pixabay.com/ko/vectors/%EC%9B%90%EA%B2%A9-%EB%A0%88%EC%9D%B4%EC%A0%80-%EC%9D%B4%EB%AF%B8%EC%A7%80-107236/ 폭발: https://pixabay.com/ko/vectors/%EB%B0%A9%EC%86%A1-%EC%9D%B4%EB%AF%B8%EC%A7%80-%ED%8F%AD%EB%B0%9C-%EB%B0%A9%EC%86%A1-2148216/ 이미지를 사용하기 전에 출처와 라이선스 등을 반드시 확인하고 사용해야 합니다. |
아.. 무료 버전의 한계인가 봅니다… 우주 배경 링크를 클릭하면 ‘귀여운 동물’ 이미지가 뜨네요… 나머지도 다 클릭해 보았습니다. (외계인 링크는 물망초가 뜨네요…)
그림파일은 그림판을 이용하여 직접 만들어보았습니다.
![]() enemy.png | ![]() player.png |
만든 이미지는 게임파일이 있는 폴더에 각각 player.png와 enemy.png로 저장하였습니다.
이제 chatGPT가 만들어준 파이썬 코드를 실행시켜보도록하겠습니다.
galaga_game.py 제목의 파일로 코드를 저장하고 파이썬에 불러오도록 하겠습니다.

ModuleNotFoundError: No module named ‘pygame’ 에러시 처리 |
pygame 라이브러리가 설치되어있지 않아 발생하는 오류 입니다. 커맨드라인에 다음과 같이 입력하여 라이브러리를 설치해 줍니다. pip install pygame |
게임 실행 시 아래와 같은 화면이 뜨면서 게임이 진행됩니다.

게임속도가 너무 빨라서 시직하자마자 종료되는 문제 발생 시 |
코드 내에 속도를 조절해줍니다.![]() |
마무리하며
게임은 단순히 적을 피하는 기능만 있어서 적을 향해 총(?)을 쏜다든지 기능 추가가 필요할 듯합니다. 앞으로 다양한 기능을 추가해보도록 하겠습니다.
(게임 기능 추가도 chatGPT를 활용해 자동생성된 코드를 활용토록 진행할 예정입니다)