Menu
CoddyTech

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.

challenge icon

Aufgabe

Einfach

Wenn 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

Übe selbstständig: Pygame-Playground