开始、停止和步长
本课属于 Coddy Pygame 学习旅程的“游戏窗口中的 Python”单元。第 17 课,共 33 课。
range 最多接受三个数字:range(start, stop, step)。
range(5):0、1、2、3、4range(2, 6):2、3、4、5range(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。
挑战
简单在星空下,用一个 for 循环画一排 14 盏灯笼。
- 把单个灯笼替换为一个遍历
range的循环,设置起始值、结束值和步长:x 从 60 到 580,每隔 40 像素。 - 在 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 在线编辑器