Menu
CoddyTech

게임 완성하기

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 여정에서는 스프라이트, 그림, 사운드, 메뉴, 최고 점수, 맵을 더 알아봅니다.

색상, 속도, 규칙을 바꾸어 나만의 게임을 만들어 보세요. 그런 다음 ‘플레이’를 눌러 보세요. 이기기 너무 어렵거나 너무 빨리 지게 된다면, 재미있게 즐길 수 있을 때까지 숫자를 바꿔 보세요.

challenge icon

챌린지

쉬움

게임을 완성하세요.

  1. 저절로 움직이는 무언가를 추가하세요.
  2. 점수나 타이머 같은 텍스트를 화면에 표시하세요.
  3. 게임에 결말을 만드세요. 이기는 방법이나 지는 방법 또는 둘 다를 추가하세요.

‘플레이’를 누르세요. 무언가가 저절로 움직이고 텍스트가 표시됩니다. 그런 다음 ‘확인’을 누르세요.

직접 해보기

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()
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Pygame으로 게임 만들기의 모든 레슨

직접 연습해 보세요: Pygame 플레이그라운드