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.
Wyzwanie
Łatwy- Napisz klasę sprite'a
Runner, której obrazem jestassets/images/player.png, a jej prostokąt ma punktmidbottomw pozycji (100,GROUND_Y). - Utwórz jeden obiekt o nazwie
runnerprzed pętlą. - Wyświetl
runner.imagew miejscu określonym przezrunner.rectpo 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