러너
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입니다. 땅 위에 서 있는 모든 요소에서 이 값을 사용하므로, 나중에 땅을 옮길 때 한 곳만 바꾸면 됩니다.
챌린지
쉬움- 이미지가
assets/images/player.png이고 rect의midbottom이 (100,GROUND_Y)에 위치하는Runner스프라이트 클래스를 작성하세요. - 루프 전에
runner라는 이름으로 하나 만드세요. - 땅을 그린 후
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 플레이그라운드