Menu
CoddyTech

Следуй за указателем

Часть раздела Игровой цикл путешествия по Pygame на Coddy. Урок 13 из 32.

В этой главе мы создадим Gem Hunt — игру, в которой нужно управлять мышью. Светло-голубой ромб — это самоцвет: многоугольник, четыре угла которого вычисляются по значениям gx и gy.

pygame.mouse.get_pos() возвращает положение указателя в окне в виде (x, y), отсчитываемое от верхнего левого угла, как и всё остальное. Считывайте его в цикле, и положение будет актуальным в каждом кадре:

mouse_x, mouse_y = pygame.mouse.get_pos()
pygame.draw.circle(screen, (240, 240, 240), (mouse_x, mouse_y), 10, 2)

Первая строка распаковывает кортеж в две переменные. Вторая рисует там кольцо, чтобы игрок видел, на что он указывает. Рисуйте его последним, после самоцвета, иначе самоцвет закроет его.

Считайте положение один раз, до цикла, и кольцо останется там, где указатель находился в момент запуска игры.

challenge icon

Задание

Легко
  1. В цикле после рисования драгоценного камня считайте положение указателя с помощью pygame.mouse.get_pos().
  2. Нарисуйте там белое кольцо (240, 240, 240): круг радиусом 10 и шириной 2.

Попробуйте сами

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()

Все уроки раздела Игровой цикл

Потренируйтесь самостоятельно: Песочница Pygame