pygame基本的雪花动画.py

"""pygame基本的雪花动画.py, 本程序演示一些白点从上到下移动,有点像雪花。"""
  
import pygame       # 导入pygame库
import random       # 导入随机库
 
pygame.init()      # 初始化pygame引擎(读音为pai gei m)
 
BLACK = [0, 0, 0]
WHITE = [255, 255, 255]
 
# 设置屏幕宽高
SIZE = [400, 400]
 
screen = pygame.display.set_mode(SIZE)
pygame.display.set_caption("pygame基本的雪花动画")
 
# 创建空列表
snow_list = []
 
# 加50对在屏幕范围内的x和y坐标到列表
for i in range(50):
    x = random.randrange(0, SIZE[0])
    y = random.randrange(0, SIZE[1])
    snow_list.append([x, y])
 
clock = pygame.time.Clock()
 
# 结束while循环的逻辑变量
running = True
while running:
 
    for event in pygame.event.get():   # 迭代每个事件
        if event.type == pygame.QUIT:  # 如果按了关闭按钮
            running = False            # 此变量为False
 
    # 填充背景色为黑色
    screen.fill(BLACK)
 
    # 根据列表中的坐标在screen上画白点
    for i in range(len(snow_list)):
 
        # 画雪花(就是白色圆点)
        pygame.draw.circle(screen, WHITE, snow_list[i], 2)
 
        # 往下移一个像素
        snow_list[i][1] += 1         # 每个点的y坐标+1
 
        # 如果超出屏幕的y坐标
        if snow_list[i][1] > SIZE[1]:
            # 把它扔到最顶上不是很远的一个位置
            y = random.randrange(-50, -10)
            snow_list[i][1] = y
            # x坐标也给一个随机位置
            x = random.randrange(0, SIZE[0])
            snow_list[i][0] = x
 
    # 显示屏幕
    pygame.display.flip()

    # 过了1/20秒后再次循环
    clock.tick(20)        # 每秒显示20幅画面
 
# 退出派gei
pygame.quit()