디시인사이드 갤러리

마이너 갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[AI창작] GPT-4o 활용해서 태어나서 처음으로 게임하나 만들어봄

ㅇㅇ(121.151) 2024.05.18 08:40:54
조회 465 추천 1 댓글 2
														

GPT-4o으로 게임만드는 글이 몇개 보이길래 나도 한번 만들어봤음.

파라미터 몇개 수정한거 말고는 코드에 손댄거 없고, 다 GPT가 직접 짜준 코드임.

다른 LLM 써보면 힌트정도만 알려주지 소스코드를 처음부터 끝까지 다 써주는 경우는 적은데,
GPT-4o는 다 해줘서 좋은듯. 다른건 코드 짜도 오류가 넘 많은데 GPT-4o는 오류가 없거나 있어도 수정해달라고 하면 다 고쳐줌.

아래 게임은 마우스로 검은 바탕에 클릭하면 먼지입자 생기고 클릭 당시의 방향이랑 가속도 고려하니까 던지듯이 생성할수도 있으니 참고!

관심있으면 아래 코드도 실행해봐.


7cec8177abc236a14e81d2b628f1756f5c466e


import pygame
import math

# 초기화
pygame.init()

# 화면 크기 설정
WIDTH, HEIGHT = 1400, 900
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Gravity Game")

# 색상
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
YELLOW = (255, 255, 0)
GRAY = (100, 100, 100)
LIGHT_GRAY = (200, 200, 200)
BLUE = (0, 0, 255)

# 중앙의 별 설정
star_mass = 50000 # 임의의 큰 값 (줄여서 속도 감소)
star_radius = 15 # 시각적으로 작은 크기
star1_initial_pos = [WIDTH // 2 + 50, HEIGHT // 2]
star2_initial_pos = [WIDTH // 2 - 50, HEIGHT // 2]
star1_pos = star1_initial_pos[:]
star2_pos = star2_initial_pos[:]
star1_angle = 0
star2_angle = math.pi

# 행성 리스트
planets = []

# 마우스 드래그 상태 변수
dragging = False
start_pos = (0, 0)

# 중앙의 행성 수
num_stars = 1

# 폰트 설정
font = pygame.font.SysFont(None, 24)

# 버튼 위치와 크기
reset_button_rect = pygame.Rect(10, 10, 80, 30)
one_star_button_rect = pygame.Rect(100, 10, 80, 30)
two_star_button_rect = pygame.Rect(190, 10, 80, 30)

# 행성 클래스
class Planet:
def __init__(self, x, y, vx, vy):
self.x = x
self.y = y
self.vx = vx
self.vy = vy
self.radius = 5
self.mass = 1

def update(self):
# 모든 별에 대한 중력 계산
for star_x, star_y in star_positions:
dx = star_x - self.x
dy = star_y - self.y
distance = math.sqrt(dx**2 + dy**2)
# 중력 적용 (중력가속도 감소)
force = star_mass / (distance**2)
angle = math.atan2(dy, dx)
ax = math.cos(angle) * force
ay = math.sin(angle) * force
# 가속도 적용
self.vx += ax * 0.05 # 속도 감소
self.vy += ay * 0.05 # 속도 감소
# 위치 업데이트
self.x += self.vx
self.y += self.vy

def draw(self):
pygame.draw.circle(screen, WHITE, (int(self.x), int(self.y)), self.radius)
pygame.draw.circle(screen, BLUE, (int(self.x), int(self.y)), self.radius - 2) # 시각적 효과

# 버튼 그리기 함수
def draw_buttons():
pygame.draw.rect(screen, LIGHT_GRAY, reset_button_rect)
pygame.draw.rect(screen, LIGHT_GRAY, one_star_button_rect)
pygame.draw.rect(screen, LIGHT_GRAY, two_star_button_rect)
pygame.draw.rect(screen, GRAY, reset_button_rect, 2)
pygame.draw.rect(screen, GRAY, one_star_button_rect, 2)
pygame.draw.rect(screen, GRAY, two_star_button_rect, 2)

reset_text = font.render("Reset", True, BLACK)
one_star_text = font.render("1 Star", True, BLACK)
two_star_text = font.render("2 Stars", True, BLACK)

screen.blit(reset_text, (reset_button_rect.x + 10, reset_button_rect.y + 5))
screen.blit(one_star_text, (one_star_button_rect.x + 10, one_star_button_rect.y + 5))
screen.blit(two_star_text, (two_star_button_rect.x + 10, two_star_button_rect.y + 5))

# 초기화 함수
def reset_game():
global planets
planets = []

# 게임 루프
running = True
clock = pygame.time.Clock()

while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.MOUSEBUTTONDOWN:
mouse_pos = pygame.mouse.get_pos()
if reset_button_rect.collidepoint(mouse_pos):
reset_game()
elif one_star_button_rect.collidepoint(mouse_pos):
num_stars = 1
elif two_star_button_rect.collidepoint(mouse_pos):
num_stars = 2
else:
start_pos = pygame.mouse.get_pos()
dragging = True
elif event.type == pygame.MOUSEBUTTONUP:
if dragging:
end_pos = pygame.mouse.get_pos()
mx, my = end_pos
vx = (end_pos[0] - start_pos[0]) * 0.05 # 던지는 속도 감소
vy = (end_pos[1] - start_pos[1]) * 0.05 # 던지는 속도 감소
planets.append(Planet(mx, my, vx, vy))
dragging = False

# 화면을 검은색으로 채우기
screen.fill(BLACK)

# 중앙의 별 위치 업데이트 및 공전
if num_stars == 1:
star_positions = [star1_initial_pos]
elif num_stars == 2:
star_positions = [star1_pos, star2_pos]
# 두 별 사이의 공전
star1_angle += 0.01
star2_angle += 0.01
star1_pos = [WIDTH // 2 + 50 * math.cos(star1_angle), HEIGHT // 2 + 50 * math.sin(star1_angle)]
star2_pos = [WIDTH // 2 + 50 * math.cos(star2_angle), HEIGHT // 2 + 50 * math.sin(star2_angle)]

# 중앙의 별 그리기
for pos in star_positions:
pygame.draw.circle(screen, YELLOW, (int(pos[0]), int(pos[1])), star_radius)

# 버튼 그리기
draw_buttons()
# 행성 업데이트 및 그리기
for planet in planets:
planet.update()
planet.draw()

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

pygame.quit()


자동등록방지

추천 비추천

1

고정닉 1

원본 첨부파일 1

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
2864 설문 비난 여론에도 뻔뻔하게 잘 살 것 같은 스타는? 운영자 24/06/03 - -
242613 공지 특갤 통합 공지 / 댓글 신고,문의 / 차단 해제 요청 [3143] 특갤용갤로그로 이동합니다. 23.08.06 40023 43
433260 공지 웬만하면 신문고에 문의 해주시면 차단 풀어드립니다 [2] 부패하는유전자!!!갤로그로 이동합니다. 24.03.06 2746 2
363220 공지 선형글 삭제 기준 [7] 특갤용갤로그로 이동합니다. 23.10.14 7468 24
375493 공지 필독) 유입 특붕이를 위한 AI 정보글 모음 (01/23) [40] ㅇㅇ(182.230) 23.11.11 13658 122
373402 공지 직업 비하, 조롱 글 30일 차단됩니다. [51] 특갤용갤로그로 이동합니다. 23.11.07 9119 79
385147 공지 구글의 AGI 분류 체계 [17] ㅇㅇ갤로그로 이동합니다. 23.11.22 8652 31
332612 공지 음모론 삭제 기준을 안내드립니다. [23] 특갤용갤로그로 이동합니다. 23.08.25 9352 30
412470 공지 레이 커즈와일 신간 6월 25일 발매 [29] 모브갤로그로 이동합니다. 24.01.24 8259 34
259237 공지 특갤 용어 모음집 [6] 특갤용갤로그로 이동합니다. 23.08.09 23031 33
488567 일반 ai 개발자들이 진짜 낭만&광기 아니냐 ㅇㅇ(106.101) 16:39 11 0
488566 일반 인공지능으로 제일먼저 대체될직업 순위 ㅇㅇ(211.36) 16:38 10 0
488565 일반 먼저 간다 애들아 [6] ㅇㅇ(58.224) 16:28 134 1
488564 일반 LLM 의 한계는 O LMM 의 한계는 X [2] ㅇㅇ(221.167) 16:27 80 0
488563 일반 OAI 아직 한계 못 만난 거 같음 ㅇㅇ(106.102) 16:26 37 0
488562 일반 비관 생각 드는 친구들아 [7] ㅇㅇ(59.6) 16:21 132 3
488561 일반 뤼튼이 투자 받는 이유 [5] ㅇㅇ(218.156) 16:20 76 1
488560 정보/ 케임브리지대 연구원, 1세대 항노화 치료제는 2040년 전에 출시될지도? [5] 슈퍼130클럽갤로그로 이동합니다. 16:18 163 2
488559 일반 Suno는 다 좋은데 음질이 좀 별로임 [2] ㅇㅇ(125.137) 16:18 33 0
488558 일반 모델 근들갑이 가장 의미 없음 ㅇㅇ(119.192) 16:17 59 1
488557 일반 특이점 겨울이다 ㅇㅇ(106.101) 16:16 12 0
488556 일반 결국 AI을 위시로한 새 정부가 나와야된다고 본다 [1] ㅇㅇ(59.12) 16:16 21 0
488555 일반 Gpt5 25년에 출시한다고?? ㅅㅂ 야상섹상갤로그로 이동합니다. 16:13 72 0
488554 일반 OAI 기술이 나날이 몰래 발전하는 거 같다 ㅇㅇ(106.102) 16:11 60 0
488553 일반 구글 제미나이 어시스턴트 병신 같은 점 [6] ㅇㅇ(118.235) 16:07 64 0
488552 일반 사만다랑 시리랑 연결시키려하는게 맞네 ㅇㅇ [2] ㅇㅇ(221.167) 16:04 69 1
488551 일반 식주벌레들 많아지니까 특갤 노잼인 듯 ㅠㅠ [5] 트라야누스(14.32) 16:04 97 2
488550 일반 지금 ai 기술 수준으로 가장 활용잘하는 기업은 ㅇㅇ(49.161) 16:03 45 0
488549 일반 ㅌㅇㅈ ㅈㅂ 232ㅇㅊ 포스트휴먼.갤로그로 이동합니다. 16:02 23 1
488548 토의 글로벌 부유세 걷으면 한국은? [3] 선샌니~갤로그로 이동합니다. 16:00 90 0
488547 일반 개발자 취업난은 ai 때문이 아니래 [6] ㅇㅇ(222.101) 15:58 219 1
488546 일반 치아교정해야되는데 치아생성 가능해지면 [4] ㅇㅇ(116.120) 15:54 73 0
488545 일반 udio vs suno [3] ㅇㅇ갤로그로 이동합니다. 15:52 68 0
488544 일반 4o보이스 정식출시가 애플개발자회의까지가는거 드럽네 [3] ㅇㅇ(218.50) 15:52 123 0
488543 일반 agi asi는 개듣보 회사에서 개발할거라 본다 [1] ㅇㅇ(223.38) 15:50 72 1
488542 AI창 초 역대급 고퀄 임재범 - 현생위해 [7] 기점이어서오고갤로그로 이동합니다. 15:44 212 6
488541 일반 요새 갤럭시 음성 키보드 꽤 쓸만함 [5] ㅇㅇ(118.235) 15:44 54 1
488540 일반 chatGPT 음성 대화를 음성으로 종료하는 방법 없나? [4] ㅇㅇ(118.235) 15:41 89 0
488539 일반 밖에 나가라고 하는거 개 ㅈ같네 진짜 [5] ㅇㅇ(118.235) 15:37 200 1
488538 토의 국제적으로 공조해서 부유세 걷는다던데 [13] 선샌니~갤로그로 이동합니다. 15:36 232 0
488537 일반 오픈에아이는 걍 싹 다 따였네 [2] ㅇㅇ(118.235) 15:35 155 1
488536 일반 특붕이들 적이 직업이라고? ㅋㅋㅋ [1] ㅇㅇ(125.240) 15:34 108 3
488535 AI창 udio 음악하나 [1] ㅇㅇ(61.255) 15:31 57 2
488534 일반 요새 슬슬 agi 불가능한거 느끼는중임 [4] ㅇㅇ(221.166) 15:30 254 1
488533 정보/ 아직 존재하지 않는 직업을 준비하는것 : 다음 10년안에 구직활동? [3] 슈퍼130클럽갤로그로 이동합니다. 15:28 167 0
488532 일반 추천 도서를 보면 그 갤 수준을 알수 있다 ㅇㅇ(175.195) 15:25 103 0
488531 정보/ GPT류 챗봇 쓰는 사람들 개꿀팁 준다 들어와봐라.txt [13] lightvector갤로그로 이동합니다. 15:23 381 10
488530 일반 술슬 압박오네 [6] ㅇㅇ(118.235) 15:23 147 2
488529 일반 특갤 첨인데 니들 적은 <<직업>>이냐?? [16] ㅇㅇ(223.38) 15:20 229 6
488528 일반 ai노래 수준 미치긴 했네 터져갤로그로 이동합니다. 15:19 67 0
488527 일반 씨발 떡밥 존나 없네 [1] ㅇㅇ갤로그로 이동합니다. 15:19 43 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2