Menu
CoddyTech

러너

Coddy Pygame 여정의 게임 규칙 섹션에 포함된 레슨. 29개 중 23번째.

이 장에서는 끝없이 달리는 게임인 Sky Runner를 만듭니다. 주자는 왼쪽 가장자리 근처에 머무르고 장애물은 오른쪽에서 다가옵니다. 가능한 한 오래 장애물을 뛰어넘으세요. 하늘과 땅을 그립니다. 주자는 3절에서처럼 스프라이트입니다:

class Runner(pygame.sprite.Sprite):
    def __init__(self):
        super().__init__()
        self.image = pygame.image.load("assets/images/player.png").convert_alpha()
        self.rect = self.image.get_rect(midbottom=(100, GROUND_Y))

midbottom은 그림 아래쪽 가장자리의 가운데를 한 지점에 놓습니다. 주자의 발은 그림의 맨 아래에 있으므로, midbottom=(100, GROUND_Y)로 설정하면 높이가 얼마든 주자를 x 좌표 100의 땅 위에 세웁니다.

GROUND_Y는 땅의 위쪽 가장자리의 y 좌표이며, 값은 260입니다. 땅 위에 서 있는 모든 요소에서 이 값을 사용하므로, 나중에 땅을 옮길 때 한 곳만 바꾸면 됩니다.

challenge icon

챌린지

쉬움
  1. 이미지가 assets/images/player.png이고 rect의 midbottom이 (100, GROUND_Y)에 위치하는 Runner 스프라이트 클래스를 작성하세요.
  2. 루프 전에 runner라는 이름으로 하나 만드세요.
  3. 땅을 그린 후 runner.rect 위치에 runner.image를 블릿하세요.

직접 해보기

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 320))
pygame.display.set_caption("Sky Runner")
clock = pygame.time.Clock()

SKY = (140, 200, 240)
GROUND = (90, 160, 80)
GROUND_Y = 260

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    screen.fill(SKY)
    pygame.draw.rect(screen, GROUND, (0, GROUND_Y, 640, 60))
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

게임 규칙의 모든 레슨

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