Eine Liste von Sternen
Teil des Abschnitts Python in einem Spielfenster der Pygame-Journey von Coddy. Lektion 24 von 32.
Eine Liste enthält viele Werte in einer Variablen, der Reihe nach und in eckigen Klammern:
stars = [(100, 80), (220, 160), (360, 100)]Hier ist jedes Element ein Positions-Tupel. stars[0] ist das erste Element, (100, 80), und stars[1] das zweite. Wie bei range beginnt das Zählen bei 0.
Eine for-Schleife kann eine Liste durchlaufen. Die Schleifenvariable nimmt der Reihe nach jedes Element an:
for star in stars:
pygame.draw.circle(screen, (255, 255, 255), star, 5)Eine Position ist ein Tupel, daher wird star direkt dort eingesetzt, wo das Zentrum erwartet wird. Füge der Liste eine Position hinzu, und ein weiterer Stern erscheint, ohne dass die Schleife geändert werden muss. Die Liste ist das Gedächtnis des Spiels für alles, was auf dem Bildschirm zu sehen ist; die Schleife zeichnet, was auch immer sie enthält.
Aufgabe
EinfachZeichne einen Himmel mit fünf Sternen aus einer Liste:
- Füge
(360, 100),(480, 200)und(580, 70)am Ende vonstarshinzu. - Ersetze die Zeile, die
stars[0]zeichnet, durchfor star in stars:und zeichne jeden Stern als weißen Kreis mit Radius 5.
Probier es selbst
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# Richte hier alles ein, bevor die Spielschleife beginnt.
stars = [(100, 80), (220, 160)]
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Ändere hier in jedem Frame die nötigen Dinge.
screen.fill((20, 24, 48))
# Zeichne hier, nachdem der Bildschirm gefüllt wurde.
pygame.draw.circle(screen, (255, 255, 255), stars[0], 5)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Alle Lektionen in Python in einem Spielfenster
3If und Tasten
Am Rand auf die andere SeiteTasten bewegen den MondElif und ElseUnd, OderWahr oder Falsch6Listen von Dingen
Eine Liste von SternenKlicken zum HinzufügenMit len zählenEinen Stern entfernenZufallszahlenÜbe selbstständig: Pygame-Playground