게임 완성하기
Coddy의 Pygame으로 게임 만들기 코스 레슨. 41개 중 41번째.
이제 3~5단계인 도전 과제, 게임 종료, 텍스트를 살펴보겠습니다. Rock Dodge는 Rect 목록에 바위들을 저장합니다. 400ms마다 새 바위가 생기고, 화면에는 여러 개의 바위가 동시에 나타납니다.
rocks = []
# NEW_ROCK 타이머 이벤트가 발생하면:
rocks.append(pygame.Rect(random.randint(0, 450), -30, 30, 30))
# 매 프레임마다:
for rock in rocks:
rock.y += 5
if rock.colliderect(player):
state = "lost"
rocks = [rock for rock in rocks if rock.top < 360]마지막 줄은 리스트 컴프리헨션입니다. 화면에 남아 있는 바위만 담은 새 목록을 만들어 목록이 끝없이 커지지 않게 합니다.
state 문자열인 "playing", "lost" 또는 "won"에 따라 매 프레임마다 할 일이 결정됩니다. Sky Runner와 같은 방식입니다. 그리고 pygame.time.get_ticks()는 게임이 시작된 뒤 경과한 시간을 밀리초 단위로 알려 주므로 타이머를 만들 수 있습니다. 20초 동안 살아남으면 승리합니다.
이 게임에는 이 과정에서 배운 모든 것을 활용할 수 있고, Pygame 여정에서는 스프라이트, 그림, 사운드, 메뉴, 최고 점수, 맵을 더 알아봅니다.
색상, 속도, 규칙을 바꾸어 나만의 게임을 만들어 보세요. 그런 다음 ‘플레이’를 눌러 보세요. 이기기 너무 어렵거나 너무 빨리 지게 된다면, 재미있게 즐길 수 있을 때까지 숫자를 바꿔 보세요.
챌린지
쉬움게임을 완성하세요.
- 저절로 움직이는 무언가를 추가하세요.
- 점수나 타이머 같은 텍스트를 화면에 표시하세요.
- 게임에 결말을 만드세요. 이기는 방법이나 지는 방법 또는 둘 다를 추가하세요.
‘플레이’를 누르세요. 무언가가 저절로 움직이고 텍스트가 표시됩니다. 그런 다음 ‘확인’을 누르세요.
직접 해보기
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Rock Dodge")
clock = pygame.time.Clock()
player = pygame.Rect(220, 320, 40, 20)
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]:
player.x -= 7
if keys[pygame.K_RIGHT]:
player.x += 7
player.clamp_ip(screen.get_rect())
screen.fill((30, 30, 46))
pygame.draw.rect(screen, (80, 160, 255), player)
pygame.display.flip()
clock.tick(60)
pygame.quit()
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
Pygame으로 게임 만들기의 모든 레슨
직접 연습해 보세요: Pygame 플레이그라운드