Menu
CoddyTech

开始、停止和步长

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

range 最多接受三个数字:range(start, stop, step)。

  • range(5):0、1、2、3、4
  • range(2, 6):2、3、4、5
  • range(60, 200, 40):60、100、140、180

它从 start 开始,每次加上 step,并在到达 stop 之前停止。stop 值本身永远不会包含在范围内。

有了起始值和步长,循环变量就可以直接表示位置,不需要计算总和:

for x in range(60, 600, 40):
    pygame.draw.circle(screen, (255, 160, 60), (x, 420), 8)

要让一行结束在 580,stop 必须大于它:range(60, 580, 40) 会在 540 结束。步长可以是负数,用于倒数:range(10, 0, -2) 表示 10、8、6、4、2。

challenge icon

挑战

简单

在星空下,用一个 for 循环画一排 14 盏灯笼。

  1. 把单个灯笼替换为一个遍历 range 的循环,设置起始值、结束值和步长:x 从 60 到 580,每隔 40 像素。
  2. 在 y 为 420 的位置画出每盏灯笼,画成半径为 8 的橙色 (255, 160, 60) 圆形。

按“运行”:底部会出现 14 盏灯笼。然后按“检查”。

亲手试试

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(8):
        pygame.draw.circle(screen, (255, 255, 255), (40 + i * 80, 80), 5)
    pygame.draw.circle(screen, (255, 160, 60), (60, 420), 8)

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

pygame.quit()

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

自己练习: Pygame 在线编辑器