Меняющиеся цвета
Часть раздела Игровой цикл путешествия по 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, и круг снова и снова светится, меняя цвет с красного на жёлтый.
Задание
ЛегкоСделай так, чтобы круг светился, меняя цвет с красного на жёлтый.
- Перед циклом задай
glow = 0. - В цикле перед рисованием прибавляй 3 к
glowи удерживай его в диапазоне от 0 до 255 с помощью% 256. - Нарисуй круг цветом
(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()
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Игровой цикл
Потренируйтесь самостоятельно: Песочница Pygame