Menu
CoddyTech

게임 완성하기

Coddy의 Pygame으로 게임 만들기 코스 레슨. 40개 중 40번째.

이제 3~5단계입니다. 도전 과제, 끝내기, 텍스트를 추가합니다. Rock Dodge는 아직 보지 못한 한 가지 아이디어인 Rect 목록을 사용합니다. 400 ms마다 새로운 바위가 나타나 화면에 여러 개가 동시에 표시됩니다.

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" 중 하나이며, 여러 플래그를 대신합니다. 그리고 pygame.time.get_ticks()는 게임이 시작된 뒤 경과한 밀리초를 알려 주므로 타이머를 만들 수 있습니다. 20초 동안 살아남으면 승리합니다.

게임을 나만의 것으로 만들어 보세요. 색상, 속도, 규칙을 바꿔 보세요. 그런 다음 게임을 플레이하세요. 이기기 너무 어렵거나 지기 너무 빠르다면, 재미있어질 때까지 숫자를 바꿔 보세요.

challenge icon

챌린지

쉬움

게임을 완성하여 다음 요소를 포함하세요:

  1. 저절로 움직이는 무언가.
  2. 점수나 타이머 같은 화면의 텍스트.
  3. 승리하는 방법, 패배하는 방법 또는 둘 다를 포함하는 종료 방식.

검사 항목은 텍스트, 키를 누르지 않아도 움직이는 요소, 오류 없이 30초 동안 실행되는 게임, 그리고 닫히는 창을 확인합니다. 나머지는 모두 여러분에게 달려 있습니다.

직접 해보기

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 플레이그라운드