💻 源代码
import pygame
import random
import sys
# 初始化
pygame.init()
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("代码雨")
# 配置
FONT_SIZE = 16
COLS = WIDTH // FONT_SIZE
drops = [0] * COLS
# 字符集
chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@#$%^&*'
def draw_code_rain():
screen.fill((0, 0, 0))
for i in range(COLS):
char = random.choice(chars)
y = drops[i] * FONT_SIZE
# 渐变绿色
color = (0, random.randint(100, 255), 0)
font = pygame.font.SysFont(' Consolas', FONT_SIZE)
text = font.render(char, True, color)
screen.blit(text, (i * FONT_SIZE, y))
# 重置位置
if y > HEIGHT and random.random() > 0.975:
drops[i] = 0
drops[i] += 1
pygame.display.flip()
# 主循环
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
draw_code_rain()
pygame.time.delay(33)