게임공작소
운석 피하기 게임 개발(2)- 기본화면 (feat. ChatGPT)
스푸79
2024. 8. 19. 08:00
pygame으로 운석 피하기 게임은 ChatGPT와 함께할 생각이다.
느낌상 거의 ChatGPT가 다 작성해 줄 것 같은 느낌이 든다.
화면설계에 따라 800 x 800 사이즈 pygame 코드로 창을 만들어 달라고 요청했다.
답변 받은 코드를 복사해서 실행해 보았다.
보통 pygame 예제가 main class를 만들지 않고 이렇게 작성한 예시가 많은 것 같다.
간단한 게임이라면 위의 코드로 충분히 커버가 되지만
클래스로 기본 화면을 만들어 두지 않으면 여러 개의 다른 파일과 연계할 때 문제가 있을 수 있다.
ChatGPT님께서 작성해 주신 코드를 아래와 같이 수정을 했다.
추가적로 윈도우 창에 아이콘 표시도 넣어 보았다.
게임이 실행되는 위치에 따라 상대 경로 문제로 이미지파일을 못 찾는 문제를 사전 방지하기 위해
os.path.dirname 을 이용하여 현재 .py가 실행되는 위치(=게임기본경로)를 가져오도록 처리했다.
import os
GAME_DIR = os.path.dirname(os.path.abspath(__file__))
전체코드
import pygame
import sys
import os
# .py 실행하는 위치에 따라 게임 경로를 가져와서 image를 못찾는 문제를 해결하기 위해 처리
GAME_DIR = os.path.dirname(os.path.abspath(__file__))
class Main():
def __init__(self):
self.screen = pygame.display.set_mode((800, 800))
pygame.display.set_caption("Meteor Dodger")
# 게임 화면 창에 아이콘 추가
icon = pygame.image.load(GAME_DIR + "/meteor_dodger.ico")
pygame.display.set_icon(icon)
def play(self):
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
self.screen.fill((0, 0, 0))
pygame.display.flip()
if __name__ == "__main__":
#게임 화면 실행인 경우 gameMain 객체 생성 후 play() 메서드 호출 처리
gameMain = Main()
gameMain.play()
윈도우 아이콘을 설정해 두면 아래와 같이 작업 표시줄에서 표시가 된다.
VSCODE에 Explorer 창이다.
01.basic 폴더를 하나 별도로 만들었다.
포스트가 올릴때마다 02, 03, .. 넘버를 붙여서 폴더를 생성하면서 완성해 갈 예정이다.
아이콘이 포함된 소스코드를 업로드한다.