Siga o Ponteiro
Parte da seção O loop do jogo do Journey de Pygame da Coddy. Lição 13 de 32.
Este capítulo cria Gem Hunt, um jogo que você joga com o mouse. O diamante azul-claro é a gema: um polígono cujos quatro cantos são calculados a partir de gx e gy.
pygame.mouse.get_pos() fornece a posição do ponteiro na janela como (x, y), medida a partir do canto superior esquerdo, como todo o resto. Leia essa posição no loop para que esteja atualizada em cada quadro:
mouse_x, mouse_y = pygame.mouse.get_pos()
pygame.draw.circle(screen, (240, 240, 240), (mouse_x, mouse_y), 10, 2)A primeira linha desempacota a tupla em duas variáveis. A segunda desenha um anel nessa posição, para que o jogador veja para onde está apontando. Desenhe-o por último, depois da gema, ou a gema o cobrirá.
Leia a posição uma vez, antes do loop, e o anel permanecerá onde o ponteiro estava quando o jogo começou.
Desafio
Fácil- No loop, depois de desenhar a gema, leia a posição do ponteiro com
pygame.mouse.get_pos(). - Desenhe ali um anel branco
(240, 240, 240): um círculo com raio10e largura2.
Experimente você mesmo
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 as lições de O loop do jogo
Pratique por conta própria: Playground de Pygame