字母雨落

2022-05-29 09:41:22 浏览数 (2)

代码语言:javascript复制
import random, pygame
PANEL_width=400
PANEL_highly=500
FONT_PX=15
pygame.init()
winSur=pygame.display.set_mode((PANEL_width,PANEL_highly))
font=pygame.font.SysFont('123.ttf',22)
bg_suface=pygame.Surface((PANEL_width,PANEL_highly),flags=pygame.SRCALPHA)
pygame.Surface.convert(bg_suface)
bg_suface.fill(pygame.Color(0,0,0,28))
winSur.fill((0,0,0))
letter=['q','w','e','r','t','y','u','i','o','p','a','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m']
texts=[font.render(str(letter[i]),True,(0,255,0)) for i in range(26)]
column=int(PANEL_width/FONT_PX)
drops=[0 for i in range(column)]
while True:
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            exit()
        elif event.type==pygame.KEYDOWN:
            chang=pygame.key.get_pressed()
            if (chang[32]):
                exit()
    #暂停给定的毫秒数
    pygame.time.delay(30)
    #重新编辑图像
    winSur.blit(bg_suface,(0,0))
    for i in range(len(drops)):
        text=random.choice(texts)
        #重新编辑每个坐标点的图像
        winSur.blit(text,(i*FONT_PX,drops[i]*FONT_PX))
        drops[i] =1
        if drops[i]*10>PANEL_highly or random.random()>0.95:
            drops[i]=0
    pygame.display.flip()

算法:字母雨落是是使用 pygame 库创建窗口,再定义字母的生成并让其不断的在窗口上面显示,模仿黑客帝国数字雨落效果。

0 人点赞