Sigue el puntero
Parte de la sección El bucle del juego del Journey de Pygame de Coddy. Lección 13 de 32.
En este capítulo crearás Gem Hunt, un juego que se juega con el ratón. El diamante celeste es la gema: un polígono cuyas cuatro esquinas se calculan a partir de gx y gy.
pygame.mouse.get_pos() proporciona la posición del puntero en la ventana como (x, y), medida desde la esquina superior izquierda, como todo lo demás. Léela en el bucle para que esté actualizada en cada fotograma:
mouse_x, mouse_y = pygame.mouse.get_pos()
pygame.draw.circle(screen, (240, 240, 240), (mouse_x, mouse_y), 10, 2)La primera línea desempaqueta la tupla en dos variables. La segunda dibuja un anillo en esa posición para que el jugador vea lo que señala. Dibújalo al final, después de la gema, o la gema lo cubrirá.
Lee la posición una sola vez, antes del bucle, y el anillo se quedará donde estaba el puntero cuando empezó el juego.
Desafío
Fácil- En el bucle, después de dibujar la gema, lee la posición del puntero con
pygame.mouse.get_pos(). - Dibuja allí un anillo blanco
(240, 240, 240): un círculo con radio10y grosor2.
Pruébalo tú mismo
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()
Todas las lecciones de El bucle del juego
1Mueve un cuadrado
Abre una ventanaRellena el fondo4Movimiento basado en el tiempo
Tiempo deltaPíxeles por segundoVector2Aceleración y fricciónReaparecer al otro lado de la pantalla3El ratón
Sigue el punteroHaz clic en la gemaPractica por tu cuenta: Playground de Pygame