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.
Aufgabe
Mittel- Lade
assets/images/ship.pnginship_image. - Schreibe
class Player(pygame.sprite.Sprite): Bildship_image, Rect mit seiner unteren Mitte bei(320, 470)und einerupdate-Methode, die es pro Frame mit Links und Rechts um 6 Pixel bewegt und auf das Fenster begrenzt. - Erstelle
player = Player(); rufe in jedem Frameplayer.update()auf und blitte nach dem Füllenplayer.imageanplayer.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
1Bilder laden
Ein Bild ladenMit einem Rect platzierenDas Bild bewegenEinen Hintergrund kachelnTransparente Pixel4Spriters und Gruppen
Die Sprite-KlasseGruppenMit kill() entfernenMit spritecollide abfangenGruppe gegen Gruppe7Sternenpatrouille
Das PatrouillenschiffLaser abfeuern2Drehen, Spiegeln, Skalieren
Um den Mittelpunkt drehenIn Flugrichtung ausrichtenEin Bild skalierenVom Original aus drehen3Klassen für Spielobjekte
Deine erste KlasseMethodenSelf ist das ObjektEine Liste von ObjektenObjekte mit BildernEine Unterklasse6Animation mit Sprite Sheets
Ein Sprite Sheet zuschneidenEin Frame-ZählerMit Zeit animierenEine einmalige ExplosionÜbe selbstständig: Pygame-Playground