Menu
CoddyTech

Меняющиеся цвета

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

Цвет состоит из трёх чисел, поэтому переменная может быть одним из них. Меняй переменную каждый кадр, и цвет на экране будет меняться.

glow = 0

while running:
    # события
    glow = (glow + 3) % 256
    pygame.draw.circle(screen, (255, glow, 0), (240, 180), 60)

Каждый кадр прибавляет 3 к зелёной составляющей, поэтому круг меняет цвет с красного через оранжевый на жёлтый.

Значение каждой составляющей цвета должно оставаться в диапазоне от 0 до 255. При значении 256 pygame останавливается с ошибкой ValueError: invalid color. Оператор % возвращает остаток от деления: 256 % 256 равно 0, а 258 % 256 равно 2. Поэтому (glow + 3) % 256 снова начинает с числа около 0, не превышая 255, и круг снова и снова светится, меняя цвет с красного на жёлтый.

challenge icon

Задание

Легко

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

  1. Перед циклом задай glow = 0.
  2. В цикле перед рисованием прибавляй 3 к glow и удерживай его в диапазоне от 0 до 255 с помощью % 256.
  3. Нарисуй круг цветом (255, glow, 0).

Нажми «Играть»: круг будет снова и снова менять цвет с красного на жёлтый. Затем нажми «Проверить».

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

import pygame

pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Glow")
clock = pygame.time.Clock()

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    screen.fill((30, 30, 46))
    pygame.draw.circle(screen, (255, 120, 0), (240, 180), 60)
    pygame.display.flip()
    clock.tick(60)

pygame.quit()
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

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

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