会变化的颜色
本课属于 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,圆形就会一次又一次地从红色发亮到黄色。
挑战
简单让圆形从红色逐渐发光变成黄色。
- 在循环之前,将
glow = 0设为初始值。 - 在循环中,绘制之前,将
glow加 3,并用% 256将它限制在 0 到 255 之间。 - 用
(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 在线编辑器