Меняющиеся цвета
Часть раздела Игровой цикл путешествия по Pygame на Coddy. Урок 12 из 32.
Цвет состоит из трёх чисел, поэтому переменная может содержать одно из них. Меняй значение переменной в каждом кадре, и цвет на экране будет меняться.
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