Menu
CoddyTech

Der Läufer

Teil des Abschnitts Spielregeln der Pygame-Journey von Coddy. Lektion 23 von 29.

In diesem Kapitel entwickeln wir Sky Runner, ein Endlos-Laufspiel. Die Spielfigur bleibt nahe am linken Rand, während Hindernisse von rechts kommen; du springst so lange über sie, wie du kannst. Himmel und Boden werden gezeichnet. Die Spielfigur ist ein Sprite, wie in Abschnitt 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 platziert die Mitte der unteren Bildkante an einem Punkt. Die Füße der Spielfigur befinden sich am unteren Rand ihres Bildes, daher stellt midbottom=(100, GROUND_Y) sie bei x 100 auf den Boden, unabhängig von ihrer Höhe.

GROUND_Y ist die y-Koordinate der oberen Bodenkante, 260. Alles, was auf dem Boden steht, verwendet diesen Wert. Wenn du den Boden später verschiebst, musst du ihn also nur an einer Stelle ändern.

challenge icon

Aufgabe

Einfach
  1. Schreibe eine Sprite-Klasse Runner, deren Bild assets/images/player.png ist und deren Rechteck sein midbottom bei (100, GROUND_Y) hat.
  2. Erstelle vor der Schleife ein Exemplar namens runner.
  3. Zeichne runner.image nach dem Zeichnen des Bodens an runner.rect auf.

Probier es selbst

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

Alle Lektionen in Spielregeln

Übe selbstständig: Pygame-Playground