Menu
CoddyTech

会变化的颜色

本课属于 Coddy Pygame 学习旅程的“游戏循环”单元。第 12 课,共 35 课。

颜色由 3 个数字组成,所以变量可以是其中一个。每一帧都改变变量,屏幕上的颜色也会随之改变。

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. 在循环中,绘制之前,将 glow 加 3,并用 % 256 将它限制在 0 到 255 之间。
  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 在线编辑器