Menu
CoddyTech

使用循环变量

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

循环变量和其他数字一样,所以你可以用它进行算术运算,也可以改变位置以外的属性。这里,每个行星都比前一个更大、更黄:

for i in range(6):
    x = 70 + i * 100
    radius = 5 + i * 5
    colour = (255, 80 + i * 30, 120)
    pygame.draw.circle(screen, colour, (x, 240), radius)

以 i = 2 为例:x 是 270,radius 是 15,colour 是 (255, 140, 120)。以 i = 5 为例:x 是 570,radius 是 30,colour 是 (255, 230, 120)。

在循环体内创建的变量,例如 x 和 radius,每次循环都会获得新值。先给各个部分命名,可以让绘制语句简短清晰。

确保每个颜色数值都在 0 到 255 之间。这里最大的绿色数值是 80 + 5 * 30,也就是 230,所以没有问题。

challenge icon

挑战

中等

让每颗行星都比前一颗更大、更黄。

  1. 让行星 i 保持在中心位置 (70 + i * 100, 240)。
  2. 将它的半径设为 5 + i * 5,范围从 5 到 30。
  3. 将它的颜色设为 (255, 80 + i * 30, 120)。

按“开始”:六颗行星,每颗都更大、更黄。然后按“检查”。

亲手试试

import pygame

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

# 在这里完成设置,然后进入游戏循环。

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

    # 在这里修改内容,每帧执行一次。

    screen.fill((20, 24, 48))
    # 填充画面后,在这里绘制。
    for i in range(6):
        pygame.draw.circle(screen, (255, 80, 120), (70 + i * 100, 240), 10)

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

pygame.quit()

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

自己练习: Pygame 在线编辑器