Klicken zum Hinzufügen
Teil des Abschnitts Python in einem Spielfenster der Pygame-Journey von Coddy. Lektion 25 von 32.
Eine Liste kann während des Spiels wachsen. stars.append(item) fügt am Ende ein Element hinzu.
Ein Mausklick kommt in der Ereignisschleife als MOUSEBUTTONDOWN-Ereignis an, und event.pos gibt an, wo er stattgefunden hat: ein (x, y)-Tupel:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.MOUSEBUTTONDOWN:
stars.append(event.pos)Jeder Klick fügt eine Position hinzu. Der Zeichenabschnitt zeichnet bereits jeden Stern in der Liste, sodass der neue Stern im nächsten Frame erscheint und dort bleibt, weil ihn die Liste speichert.
Die Liste ist im Setup-Abschnitt zunächst leer: stars = []. Würde sie innerhalb der Spielschleife erstellt, wäre sie in jedem Frame leer und jeder Stern würde sofort verschwinden.
Aufgabe
EinfachWenn im Ereignisloop ein MOUSEBUTTONDOWN-Ereignis eintrifft, füge event.pos zu stars hinzu. Jeder Klick platziert dann einen weißen Stern.
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 = []
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Ändere hier einmal pro Frame die nötigen Dinge.
screen.fill((20, 24, 48))
# Zeichne hier, nachdem der Bildschirm gefüllt wurde.
for star in stars:
pygame.draw.circle(screen, (255, 255, 255), star, 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