Dem Zeiger folgen
Teil des Abschnitts Die Spielschleife der Pygame-Journey von Coddy. Lektion 13 von 32.
In diesem Kapitel entwickelst du Gem Hunt, ein Spiel, das du mit der Maus spielst. Die hellblaue Raute ist der Edelstein: ein Vieleck, dessen vier Ecken anhand von gx und gy berechnet werden.
pygame.mouse.get_pos() liefert die Position des Zeigers im Fenster als (x, y), gemessen von der oberen linken Ecke aus wie alles andere. Lies sie in der Schleife aus, dann ist sie in jedem Frame aktuell:
mouse_x, mouse_y = pygame.mouse.get_pos()
pygame.draw.circle(screen, (240, 240, 240), (mouse_x, mouse_y), 10, 2)Die erste Zeile entpackt das Tupel in zwei Variablen. Die zweite zeichnet dort einen Ring, damit der Spieler sieht, worauf er zeigt. Zeichne ihn zuletzt, nach dem Edelstein, sonst verdeckt der Edelstein ihn.
Lies die Position einmal vor der Schleife aus, und der Ring bleibt dort, wo der Zeiger war, als das Spiel gestartet wurde.
Aufgabe
Einfach- Lies in der Schleife nach dem Zeichnen des Edelsteins die Position des Mauszeigers mit
pygame.mouse.get_pos()aus. - Zeichne dort einen weißen Ring mit
(240, 240, 240): einen Kreis mit Radius10und einer Breite von2.
Probier es selbst
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Gem Hunt")
clock = pygame.time.Clock()
gx, gy = 225, 165
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((30, 30, 46))
gem_points = [(gx + 15, gy), (gx + 30, gy + 15), (gx + 15, gy + 30), (gx, gy + 15)]
pygame.draw.polygon(screen, (80, 220, 255), gem_points)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Alle Lektionen in Die Spielschleife
3Die Maus
Dem Zeiger folgenKlicke auf den EdelsteinÜbe selbstständig: Pygame-Playground