Menu
CoddyTech

用数字表示颜色

本课属于 Coddy Pygame 学习旅程的“游戏窗口中的 Python”单元。第 4 课,共 33 课。

屏幕上的颜色由三个数字表示:红光、绿光和蓝光各混合多少,每个数字的范围都是 0 到 255。这就是 RGB。

  • (255, 0, 0) 是红色,(0, 255, 0) 是绿色,(0, 0, 255) 是蓝色。
  • (0, 0, 0) 是黑色,所有光都关闭;(255, 255, 255) 是白色,所有光都开到最大。
  • (255, 255, 0) 是黄色:红光和绿光混合在一起。
  • (20, 24, 48) 表示光线较暗且蓝光更多:夜蓝色。

用逗号分隔并放在圆括号中的数字组成一个元组。Python 会按顺序将它们放在一起,因此 (48, 24, 20) 是另一种颜色,也就是深棕色。

screen.fill(colour) 会用一种颜色填满整个窗口。它会在每一帧绘制部分的开头运行,因此每一帧都会从干净的窗口开始。

challenge icon

挑战

简单

把黑色窗口填充成夜空蓝。

  1. 找到 screen.fill((0, 0, 0))。
  2. 把它改成 screen.fill((20, 24, 48))。

按下“开始”:窗口会变成夜空蓝。然后按“检查”。

亲手试试

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()

# 在这里进行设置,放在游戏循环之前。
comet_x = 0

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

    # 在这里修改内容,每帧执行一次。
    comet_x = comet_x + 3
    if comet_x > 700:
        comet_x = -60

    screen.fill((0, 0, 0))
    # 填充背景后,在这里绘制。
    pygame.draw.circle(screen, (240, 230, 160), (500, 110), 80)
    pygame.draw.circle(screen, (255, 255, 255), (comet_x, 300), 6)

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

游戏窗口中的 Python中的所有课

自己练习: Pygame 在线编辑器