Menu
CoddyTech

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.

challenge icon

Aufgabe

Einfach
  1. Lies in der Schleife nach dem Zeichnen des Edelsteins die Position des Mauszeigers mit pygame.mouse.get_pos() aus.
  2. Zeichne dort einen weißen Ring mit (240, 240, 240): einen Kreis mit Radius 10 und einer Breite von 2.

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

Übe selbstständig: Pygame-Playground