디시인사이드 갤러리

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

갤러리 본문 영역

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

ㅇㅇ(121.151) 2024.05.18 08:40:54
조회 462 추천 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 공지 특갤 통합 공지 / 댓글 신고,문의 / 차단 해제 요청 [3136] 특갤용갤로그로 이동합니다. 23.08.06 39988 43
433260 공지 웬만하면 신문고에 문의 해주시면 차단 풀어드립니다 [2] 부패하는유전자!!!갤로그로 이동합니다. 24.03.06 2738 2
363220 공지 선형글 삭제 기준 [7] 특갤용갤로그로 이동합니다. 23.10.14 7459 24
375493 공지 필독) 유입 특붕이를 위한 AI 정보글 모음 (01/23) [40] ㅇㅇ(182.230) 23.11.11 13645 122
373402 공지 직업 비하, 조롱 글 30일 차단됩니다. [51] 특갤용갤로그로 이동합니다. 23.11.07 9112 79
385147 공지 구글의 AGI 분류 체계 [17] ㅇㅇ갤로그로 이동합니다. 23.11.22 8639 31
332612 공지 음모론 삭제 기준을 안내드립니다. [23] 특갤용갤로그로 이동합니다. 23.08.25 9344 30
412470 공지 레이 커즈와일 신간 6월 25일 발매 [29] 모브갤로그로 이동합니다. 24.01.24 8251 34
259237 공지 특갤 용어 모음집 [6] 특갤용갤로그로 이동합니다. 23.08.09 23021 33
488368 일반 한자좀 없앴으면 좋겄음 ㅋㅋㅋ ㅇㅇ갤로그로 이동합니다. 02:57 29 0
488367 AI창 마지막으로 뇌절 하나 괜찮겠습니까 ㅇㅇ(106.101) 02:54 48 0
488366 일반 보이스는 언제푸나 [1] Jackey갤로그로 이동합니다. 02:40 50 0
488365 일반 역동적인건 아직 힘든듯 [2] ㅇㅇ(106.101) 02:34 119 0
488364 일반 《《《《《《《특갤 부갤주 강력추천》》》》》》》》 [7] ㅇㅇ(223.38) 02:30 134 0
488363 일반 리누스 "ai 과대광고 싫다" 글 링크 ㅇㅇ(106.101) 02:27 74 0
488362 일반 gpt한테 맨날 뇌대리 맡기다가 [1] ㅇㅇ(106.102) 02:27 77 0
488360 일반 그림은 이미 가성비에서 고트아니냐??? [5] ㅇㅇ갤로그로 이동합니다. 02:21 154 1
488359 일반 전공자 특붕이가 생각하는 Ai 그림특 [1] ㅇㅇ갤로그로 이동합니다. 02:20 104 0
488358 일반 Agi이미 나왓는데 숨기고 쓸모없어진 열화판만 보여주는거지 ㅇㅇ(223.39) 02:20 62 0
488356 일반 난 2029agi가 맞는 것 같은데 [3] ㅇㅇ갤로그로 이동합니다. 02:15 108 0
488355 일반 Ai 그림은 사실상 특이점 도달했다고 봄 [6] ㅇㅇ(59.22) 02:15 144 1
488353 일반 신약성경 진짜 기대된다 이세이미야케갤로그로 이동합니다. 02:11 63 0
488352 일반 gpt5 카운트다운 사과문 올렸네 [8] lightvector갤로그로 이동합니다. 02:10 255 0
488351 일반 ai 그림 개극혐임 ㅇㅇ(180.66) 02:06 63 0
488350 일반 애플식 기싸움 웃기긴 함 ㅇㅇ(121.128) 02:03 49 1
488349 일반 AI로 일본 가수 김치 먹이기 [8] ㅇㅇ갤로그로 이동합니다. 02:03 206 5
488348 일반 Ai그림 최근에 만든것들 [4] Samus갤로그로 이동합니다. 02:00 151 2
488347 일반 gpt5 안나온게 더 큰 문제 아닌가? ㅇㅇ(180.66) 02:00 27 0
488346 일반 사람이 그린 그림이 진가를 발휘하는 분야는 명확함 [16] ㅇㅇ(182.211) 02:00 217 3
488343 일반 2030 특이점 확정이네 [10] ㅇㅇ(222.108) 01:52 228 0
488342 일반 애플이 AI를 Apple Intelligence로 네이밍할거라네 ㅋㅋ [4] ㅇㅇ(59.17) 01:50 155 1
488341 일반 그림 알못이 보기에 [2] ㅇㅇ갤로그로 이동합니다. 01:44 140 0
488340 일반 난 ai그림 구별할 수 있다는 말 안믿음 [14] ㅇㅇ갤로그로 이동합니다. 01:39 265 0
488339 일반 왜 네이버가 LLM에서 다양성을 외치냐면 [29] 컴퓨터비전갤로그로 이동합니다. 01:39 219 2
488338 일반 2035agi 아닐까 요즘 심하게 고민중... [4] 지혜원갤로그로 이동합니다. 01:38 138 0
488336 일반 특이점 와도 페미가 섹봇 막을거같은데 [8] 선샌니~갤로그로 이동합니다. 01:32 117 0
488335 일반 올트먼 씹년아 gpt4 나온지 1년 넘었다 ㅇㅇ(180.66) 01:32 42 0
488334 일반 ai그림은 구도부터 존나 클리셰적임 [1] ㅇㅇ(182.211) 01:30 177 0
488333 일반 알파폴드 신약 언지 나옴? ㅇㅇ(180.66) 01:29 35 0
488332 일반 AGI 투표 ㄱㄱ [2] ㅇㅇ(223.62) 01:25 182 0
488331 일반 추론 강력한 gpt-5급 왜 기다리는 거냐 너네 무슨 엄청난 연구라도 [3] ㅎㅎ(61.82) 01:21 109 0
488330 일반 AI딸깍은 구도 땜에 좀 짜치는듯 Samus갤로그로 이동합니다. 01:21 95 0
488328 일반 agi 만드는 방법 알려줌 [2] ㅇㅇ(124.54) 01:12 82 0
488327 일반 걍 ai그림에 감동이 없는 이유가 [5] 오메가몬갤로그로 이동합니다. 01:10 281 1
488326 일반 개씨발 특붕아 GPT5 오늘 나온다며 솔.이☆갤로그로 이동합니다. 01:08 102 0
488325 일반 nsfw 하고싶으면 아카로 가던가 [3] ㅇㅇ갤로그로 이동합니다. 01:07 173 5
488324 일반 ??? 현실에서 만지게하면 agi된다는거잖아 [6] ㅇㅇ갤로그로 이동합니다. 01:04 175 0
488323 일반 Ai그림은 너무 퀄이 좋아서 이질감이 드는거임 [2] ㅇㅇ(122.43) 01:04 119 0
488322 일반 nsfw가 뭔가했네 [5] ㅇㅇ(114.205) 01:04 132 0
488321 일반 LLM 방식은 한계가 명확하다는걸 다들 인정하는 분위기네 [5] 감대리갤로그로 이동합니다. 01:01 190 1
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2