Menu
CoddyTech

Бегун

Часть раздела Правила игры путешествия по Pygame на Coddy. Урок 23 из 29.

В этой главе мы создадим 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. Напиши класс спрайта Runner, изображением которого служит assets/images/player.png, а у его rect точка midbottom находится в (100, GROUND_Y).
  2. Создай один экземпляр с именем runner до цикла.
  3. Выведи runner.image в точке runner.rect после отрисовки земли.

Попробуйте сами

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