Zufallszahlen
Teil des Abschnitts Python in einem Spielfenster der Pygame-Journey von Coddy. Lektion 28 von 32.
Das Modul random von Python wählt Zahlen zufällig aus. Importiere es am Anfang des Programms, oberhalb oder unterhalb von import pygame:
import randomrandom.randint(a, b) liefert eine ganze Zahl von a bis b, einschließlich beider Endpunkte. random.choice(items) wählt ein Element aus einer Liste aus:
x = random.randint(20, 620)
size = random.choice([3, 4, 5])Jeder Aufruf wählt erneut aus, also rufe die Funktion genau dann auf, wenn du einen neuen Wert brauchst. Ein Stern, der mit der Leertaste platziert wird:
if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
x = random.randint(20, 620)
y = random.randint(60, 300)
stars.append((x, y))Beachte die doppelten Klammern in stars.append((x, y)): append nimmt ein Element entgegen, und dieses Element ist das Tupel (x, y). Wählst du x und y stattdessen einmal vor der Spielschleife aus, landet jeder Stern an derselben Stelle.
Aufgabe
MittelLass die Leertaste Sterne verstreuen:
- Füge oben
import randomhinzu. - Wenn ein
KEYDOWN-Ereignis fürK_SPACEeintrifft, wählex = random.randint(20, 620)undy = random.randint(60, 300)und füge(x, y)zustarshinzu. - Klicks fügen weiterhin wie zuvor Sterne hinzu.
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 = []
font = pygame.font.Font(None, 36)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.MOUSEBUTTONDOWN:
stars.append(event.pos)
# Ändere hier in jedem 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)
text = font.render(f"Stars: {len(stars)}", True, (230, 230, 240))
screen.blit(text, (20, 20))
pygame.display.flip()
clock.tick(60)
pygame.quit()
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
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