首页 > Python资料 博客日记
【python】python实现代码雨【附源码】
2024-02-27 21:00:04Python资料围观159次
文章【python】python实现代码雨【附源码】分享给大家,欢迎收藏Python资料网,专注分享技术知识
欢迎来到英杰社区https://bbs.csdn.net/topics/617804998
系列文章
1 | 新年烟花代码 | https://blog.csdn.net/m0_73367097/article/details/135481779 |
2 | 爱心代码 | 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)) # 设置窗口背景颜色为黑色
五、完整代码:
在微信搜索公众号:英杰代码编程 或者 扫描下方名片关注后,回复: 代码雨 即可查看:
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- 【Python】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Python与PyTorch的版本对应
- Anaconda版本和Python版本对应关系(持续更新...)
- Python pyinstaller打包exe最完整教程
- Windows上安装 Python 环境并配置环境变量 (超详细教程)