Einen Hintergrund kacheln
Teil des Abschnitts Sprites und Bilder der Pygame-Journey von Coddy. Lektion 4 von 36.
Eine einfarbige Fläche ergibt einen langweiligen Himmel. assets/backgrounds/sky.png ist ein 72 mal 72 Pixel großes Bild, das zum Wiederholen erstellt wurde: Lege Kopien nebeneinander, und die Kanten schließen nahtlos aneinander an. Das Fenster mit Kopien eines kleinen Bildes zu bedecken, nennt man Kacheln.
Zwei Schleifen liefern jede obere linke Ecke, jeweils eine Rasterzeile auf einmal:
for x in range(0, 640, 72):
for y in range(0, 480, 72):
screen.blit(tile, (x, y))range(0, 640, 72) ergibt 0, 72, 144 und so weiter bis 576. Die Kopie bei 576 reicht bis 648, über den Rand hinaus: pygame zeichnet den Teil innerhalb des Fensters und lässt den Rest aus, sodass die letzte Spalte sauber abgeschnitten wird.
Die Kacheln bedecken das ganze Fenster und ersetzen daher screen.fill: Zeichne sie zuerst und dann alles andere darüber. Dieses Bild hat keine transparenten Pixel, lade es daher mit .convert(), der Version von convert_alpha() für undurchsichtige Bilder.
Aufgabe
Einfach- Lade nach
set_modeassets/backgrounds/sky.pngmit.convert()in eine Variable namenstile. - Ersetze
screen.fill(...)durch die beiden Schleifen, dietilebei jedem(x, y)blitten, wobei x inrange(0, 640, 72)und y inrange(0, 480, 72)liegt. - Zeichne das Schiff weiterhin nach den Kacheln.
Probier es selbst
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Sky Tiles")
clock = pygame.time.Clock()
ship = pygame.image.load("assets/images/ship.png").convert_alpha()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((20, 22, 40))
screen.blit(ship, (288, 360))
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