Python pygame框架实现屏幕数字雨特效

Python pygame框架实现屏幕数字雨特效

import pygame  # 导入pygame模块
import random  # 导入random模块
pygame.init()  # 初始化pygame
FONT_PX = 20  # 设置字体像素(大小)
SRCEEN = pygame.display.set_mode()  # 显示窗口
font = pygame.font.SysFont('arial', 20)  # 设置系统字体(字体,大小)
suface = pygame.Surface((1500, 800), flags=pygame.SRCALPHA)  # 调用 pygame.Surface() 创建一个新的图像对象
# Pygame 的 Surface 对象用于表示任何一个图像,Surface 对象具有固定的分辨率和像素格式。
pygame.Surface.convert(suface)  # 修改图像(Surface 对象)的像素格式
suface.fill(pygame.Color(0, 0, 0, 28))
SRCEEN.fill((0, 0, 0))  # 窗口填充颜色为黑色
texts = [font.render(str(i), True, (0, 255, 0)) for i in range(10)]
# 使用0--9数字定义文字列表,调用字体方法进行渲染为绿色
column = int(1500 / FONT_PX)  # 计算出现最大出现几列
drops = [0 for i in range(column)] # 计算出现最大出现几列坐标并生成列表
while True:
    for event in pygame.event.get():  # 监测窗口关闭事件
        if event.type == pygame.QUIT:
            exit()
    pygame.time.delay(60)  # 暂停程序一段时间
    SRCEEN.blit(suface, (0, 0))  # 将图片绘制到窗口中左上角坐标为0.0
    for i in range(len(drops)):  # 取任意一列坐标
        text = random.choice(texts)  # 随机从文字列表选择数据
        SRCEEN.blit(text, (i * FONT_PX, drops[i] * FONT_PX))  # 将图片绘制到窗口中左上角坐标为该列的左上角坐标
        drops[i] += 1 
        if drops[i] * 10 > 800 or random.random() > 0.95:  # 控制数字延伸长度
            drops[i] = 0
    pygame.display.flip()  # 更新全部显示

在这里插入图片描述实现效果图

猜你喜欢

转载自blog.csdn.net/weixin_42842018/article/details/107548102
今日推荐