Menu
CoddyTech

Biegacz

Część sekcji Zasady gry ścieżki Pygame w Coddy. Lekcja 23 z 29.

W tym rozdziale zbudujesz Sky Runner, grę typu endless runner. Postać biegnąca pozostaje blisko lewej krawędzi, a przeszkody nadbiegają z prawej; przeskakujesz je tak długo, jak potrafisz. Niebo i podłoże są rysowane. Postać biegnąca jest duszkiem, tak jak w sekcji 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 umieszcza środek dolnej krawędzi obrazka w danym punkcie. Stopy postaci biegnącej znajdują się na dole jej obrazka, więc midbottom=(100, GROUND_Y) ustawia ją na podłożu w punkcie x 100, niezależnie od jej wysokości.

GROUND_Y to współrzędna y górnej krawędzi podłoża, wynosząca 260. Wszystko, co stoi na podłożu, korzysta z tej wartości, więc późniejsza zmiana położenia podłoża wymaga tylko jednej zmiany.

challenge icon

Wyzwanie

Łatwy
  1. Napisz klasę sprite'a Runner, której obrazem jest assets/images/player.png, a jej prostokąt ma punkt midbottom w pozycji (100, GROUND_Y).
  2. Utwórz jeden obiekt o nazwie runner przed pętlą.
  3. Wyświetl runner.image w miejscu określonym przez runner.rect po narysowaniu podłoża.

Spróbuj swoich sił

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()

Wszystkie lekcje w sekcji Zasady gry

Poćwicz samodzielnie: Edytor online Pygame