欢迎来到英杰社区https://bbs.csdn.net/topics/617804998

        系列文章 

1新年烟花代码https://blog.csdn.net/m0_73367097/article/details/1354817792爱心代码https://blog.csdn.net/m0_73367097/article/details/136017032

一、效果图:

 二、准备工作

 

(1)、导入必要的模块:

       代码首先导入了需要使用的模块:requests、lxml和csv。

import requests

from lxml import etree

import csv

        如果出现模块报错

        进入控制台输入:建议使用国内镜像源

pip install 模块名称 -i https://mirrors.aliyun.com/pypi/simple

         我大致罗列了以下几种国内镜像源:

清华大学

https://pypi.tuna.tsinghua.edu.cn/simple

阿里云

https://mirrors.aliyun.com/pypi/simple/

豆瓣

https://pypi.douban.com/simple/

百度云

https://mirror.baidu.com/pypi/simple/

中科大

https://pypi.mirrors.ustc.edu.cn/simple/

华为云

https://mirrors.huaweicloud.com/repository/pypi/simple/

腾讯云

https://mirrors.cloud.tencent.com/pypi/simple/

 

三、详解代码

1. 导入所需的模块:  

import random

import pygame

2. 定义窗口的宽度、高度和字体大小:  

PANEL_width = 1080

PANEL_hight = 500

FONT_PX = 15

3. 初始化Pygame模块并创建窗口:  

pygame.init()

winSur = pygame.display.set_mode((PANEL_width, PANEL_hight))

4. 定义字体类型和大小:

font = pygame.font.SysFont("123.ttf", 25)

请注意,这里使用的字体名称是"123.ttf",你需要将其替换为你自己的字体文件路径或字体名称。

5. 创建背景表面并填充半透明黑色背景:  

bg_suface = pygame.Surface((PANEL_width, PANEL_hight), flags=pygame.SRCALPHA)

pygame.Surface.convert(bg_suface)

bg_suface.fill(pygame.Color(0, 0, 0, 28))

6. 设置窗口背景颜色为黑色:  

winSur.fill((0, 0, 0))

7. 定义字母列表:  

letter = ['y', 'a', 'n', 'y', 'i', 'n', 'g', 'j', 'i', 'e', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'z', 'x', 'c',

'v', 'b', 'n', 'm']

8. 创建字母表面:  

texts = [

font.render(str(letter[i]), True, (0, 255, 0)) for i in range(26)

]

9. 计算出可以容纳多少列字母:  

column = int(PANEL_width / FONT_PX)

10. 定义一个列表来存储每列字母的下落距离:  

drops = [0 for i in range(column)]

11. 进入主循环,处理事件和绘制字母:  

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_hight or random.random() > 0.95:

drops[i] = 0

pygame.display.flip()

        在主循环中,代码首先处理窗口关闭事件和按键事件。然后,通过延时控制字母下落的速度,并将背景表面绘制到窗口上。接下来,遍历每一列字母,随机选择一个字母表面并将其绘制到窗口上,同时更新该列字母的下落距离。如果下落距离超过窗口高度或者随机数大于0.95,则将下落距离重置为0,实现字母连续下落的效果。最后,刷新窗口显示内容。

欢迎来到英杰社区https://bbs.csdn.net/topics/617804998

四、部分代码:

import random

import pygame

# 定义面板宽度和高度,字体大小

PANEL_width = 1080

PANEL_hight = 500

FONT_PX = 15

# 初始化pygame模块

pygame.init()

# 创建窗口并设置大小

winSur = pygame.display.set_mode((PANEL_width, PANEL_hight))

# 定义字体类型和大小

font = pygame.font.SysFont("123.ttf", 25)

# 创建背景表面

bg_suface = pygame.Surface((PANEL_width, PANEL_hight), flags=pygame.SRCALPHA)

pygame.Surface.convert(bg_suface)

bg_suface.fill(pygame.Color(0, 0, 0, 28)) # 设置半透明黑色背景

winSur.fill((0, 0, 0)) # 设置窗口背景颜色为黑色

五、完整代码:

        在微信搜索公众号:英杰代码编程 或者 扫描下方名片关注后,回复: 代码雨 即可查看:

 

 

 

 

好文阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: