星星列表
本课属于 Coddy Pygame 学习旅程的“游戏窗口中的 Python”单元。第 25 课,共 33 课。
列表可以按顺序在一个变量中存放多个值,并用方括号括起来:
stars = [(100, 80), (220, 160), (360, 100)]这里的每个元素都是一个位置元组。stars[0] 是第一个元素 (100, 80),而 stars[1] 是第二个元素。和 range 一样,计数从 0 开始。
for 循环可以遍历列表。循环变量依次取列表中的每个元素:
for star in stars:
pygame.draw.circle(screen, (255, 255, 255), star, 5)位置是一个元组,因此 star 可以直接放在表示圆心的位置。向列表中添加一个位置,就会多出现一颗星星,而循环不需要做任何修改。列表保存着游戏中屏幕内容的信息;循环会绘制列表中的所有内容。
挑战
简单用一个列表画出有五颗星星的天空。
- 将
(360, 100)、(480, 200)和(580, 70)添加到stars的末尾。 - 将绘制
stars[0]的那一行替换为for star in stars:,把每颗星星都画成半径为 5 的白色(255, 255, 255)圆。
按“运行”:显示五颗星星。然后按“检查”。
亲手试试
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# 在这里完成设置,然后进入游戏循环。
stars = [(100, 80), (220, 160)]
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 在这里每帧更新一次。
screen.fill((20, 24, 48))
# 填充背景后,在这里绘制。
pygame.draw.circle(screen, (255, 255, 255), stars[0], 5)
pygame.display.flip()
clock.tick(60)
pygame.quit()
游戏窗口中的 Python中的所有课
自己练习: Pygame 在线编辑器