Ein Bild laden
Teil des Abschnitts Sprites und Bilder der Pygame-Journey von Coddy. Lektion 1 von 36.
Spiele zeichnen Bilder, nicht nur Formen. Ein Bild stammt aus einer Bilddatei, und pygame wandelt die Datei in eine Surface um, also dieselbe Art von Objekt wie das Fenster: ein Raster aus Pixeln, auf das du zeichnen kannst.
ship = pygame.image.load("assets/images/ship.png").convert_alpha()Der Pfad ist relativ zu main.py: Das Spiel hat einen assets-Ordner neben sich, und im Tab „Assets“ neben dem Spiel werden alle darin enthaltenen Dateien aufgelistet.
convert_alpha() kopiert das Bild in das eigene Pixelformat des Fensters. Dadurch geht das Zeichnen in jedem Frame schnell und die durchsichtigen Pixel bleiben erhalten. Dafür wird das Fenster benötigt, also lade Bilder nach set_mode. Lade jedes Bild einmal vor der Schleife: Eine Datei 60-mal pro Sekunde zu lesen, verlangsamt das Spiel.
Um das Bild zu zeichnen, blit es auf das Fenster. Die Position gibt an, wo seine obere linke Ecke liegt:
screen.blit(ship, (288, 208))Führe das Blitting nach screen.fill(...) aus, sonst übermalt die Füllung das Bild.
Aufgabe
Einfach- Lade nach
set_modeassets/images/ship.pngmit.convert_alpha()in eine Variable namensship. - Füge in der Schleife nach dem Füllen
shipso ein, dass sich die linke obere Ecke bei(288, 208)befindet. Das Schiff ist 64 mal 64 Pixel groß und befindet sich daher in der Mitte des 640 mal 480 Pixel großen Fensters.
Probier es selbst
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Space Images")
clock = pygame.time.Clock()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((20, 22, 40))
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 Pixel2Drehen, 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