Menu
CoddyTech

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.

challenge icon

Desafio

Fácil
  1. No loop, depois de desenhar a gema, leia a posição do ponteiro com pygame.mouse.get_pos().
  2. Desenhe ali um anel branco (240, 240, 240): um círculo com raio 10 e largura 2.

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