Menu
CoddyTech

Das Patrouillenschiff

Teil des Abschnitts Sprites und Bilder der Pygame-Journey von Coddy. Lektion 29 von 36.

Jetzt ist es Zeit, ein ganzes Spiel zu entwickeln: Star Patrol. Wellen von feindlichen Schiffen fliegen von oben herab. Dein Schiff patrouilliert am unteren Rand des Fensters, bewegt sich nach links und rechts und feuert Laser nach oben. Zerstöre jede Welle, um zu gewinnen; lass drei Gegner durch oder stoße mit ihnen zusammen, und das Spiel ist vorbei.

Jedes Objekt im Spiel wird ein Sprite sein: der Spieler, seine Laser, die Gegner und ihre Explosionen. Wie in Kapitel 4 kommt der Spieler zuerst:

class Player(pygame.sprite.Sprite):
    def __init__(self):
        super().__init__()
        self.image = ship_image
        self.rect = self.image.get_rect(midbottom=(320, 470))

Lade ship_image einmal, nachdem du das Fenster erstellt hast. Mit update bewegt sich das Rect anhand der Pfeiltasten und bleibt innerhalb des Fensters. Die Hauptschleife ruft player.update() auf und zeichnet das Schiff.

Dieses Kapitel erweitert dasselbe Programm Schritt für Schritt. Behalte daher die Namen bei, die in den Aufgaben vorgegeben sind: Die Prüfungen finden damit die Bestandteile des Spiels.

challenge icon

Aufgabe

Mittel
  1. Lade assets/images/ship.png in ship_image.
  2. Schreibe class Player(pygame.sprite.Sprite): Bild ship_image, Rect mit seiner unteren Mitte bei (320, 470) und einer update-Methode, die es pro Frame mit Links und Rechts um 6 Pixel bewegt und auf das Fenster begrenzt.
  3. Erstelle player = Player(); rufe in jedem Frame player.update() auf und blitte nach dem Füllen player.image an player.rect.

Probier es selbst

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Star Patrol")
clock = pygame.time.Clock()

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    screen.fill((12, 14, 30))
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Alle Lektionen in Sprites und Bilder

Übe selbstständig: Pygame-Playground