Segui il puntatore
Fa parte della sezione Il game loop del percorso Pygame di Coddy. Lezione 13 di 32.
In questo capitolo realizzerai Gem Hunt, un gioco a cui giochi con il mouse. Il diamante azzurro è la gemma: un poligono i cui quattro vertici vengono calcolati a partire da gx e gy.
pygame.mouse.get_pos() restituisce la posizione del puntatore nella finestra come (x, y), misurata a partire dall'angolo in alto a sinistra, come tutto il resto. Leggila nel ciclo e sarà aggiornata a ogni fotogramma:
mouse_x, mouse_y = pygame.mouse.get_pos()
pygame.draw.circle(screen, (240, 240, 240), (mouse_x, mouse_y), 10, 2)La prima riga spacchetta la tupla in due variabili. La seconda disegna un anello in quel punto, così il giocatore vede cosa sta indicando. Disegnalo per ultimo, dopo la gemma, altrimenti la gemma lo copre.
Leggi la posizione una volta, prima del ciclo, e l'anello resterà nel punto in cui si trovava il puntatore all'avvio del gioco.
Sfida
Facile- Nel ciclo, dopo aver disegnato la gemma, leggi la posizione del puntatore con
pygame.mouse.get_pos(). - Disegna lì un anello bianco
(240, 240, 240): un cerchio con raggio10e larghezza2.
Provalo tu
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()
Tutte le lezioni di Il game loop
Esercitati da solo: Playground Pygame