当前位置:   article > 正文

【python】python实现代码雨【附源码】

【python】python实现代码雨【附源码】

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

        系列文章 

一、效果图:

e16a6362f75c430591a6e6f7129b40a8.gif

 二、准备工作

 

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

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

  1. import requests
  2. from lxml import etree
  3. import csv

        如果出现模块报错

c124a1693bfc457ba1f2909ee9d299fc.png

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

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

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

  1. 清华大学
  2. https://pypi.tuna.tsinghua.edu.cn/simple
  3. 阿里云
  4. https://mirrors.aliyun.com/pypi/simple/
  5. 豆瓣
  6. https://pypi.douban.com/simple/
  7. 百度云
  8. https://mirror.baidu.com/pypi/simple/
  9. 中科大
  10. https://pypi.mirrors.ustc.edu.cn/simple/
  11. 华为云
  12. https://mirrors.huaweicloud.com/repository/pypi/simple/
  13. 腾讯云
  14. https://mirrors.cloud.tencent.com/pypi/simple/

 

三、详解代码

1. 导入所需的模块:
 

  1. import random
  2. import pygame

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

  1. PANEL_width = 1080
  2. PANEL_hight = 500
  3. FONT_PX = 15

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

  1. pygame.init()
  2. winSur = pygame.display.set_mode((PANEL_width, PANEL_hight))

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

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


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

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

  1. bg_suface = pygame.Surface((PANEL_width, PANEL_hight), flags=pygame.SRCALPHA)
  2. pygame.Surface.convert(bg_suface)
  3. bg_suface.fill(pygame.Color(0, 0, 0, 28))

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

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

7. 定义字母列表:
 

  1. letter = ['y', 'a', 'n', 'y', 'i', 'n', 'g', 'j', 'i', 'e', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'z', 'x', 'c',
  2. 'v', 'b', 'n', 'm']

8. 创建字母表面:
 

  1. texts = [
  2. font.render(str(letter[i]), True, (0, 255, 0)) for i in range(26)
  3. ]

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

column = int(PANEL_width / FONT_PX)

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

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

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

  1. while True:
  2. for event in pygame.event.get():
  3. if event.type == pygame.QUIT:
  4. exit()
  5. elif event.type == pygame.KEYDOWN:
  6. chang = pygame.key.get_pressed()
  7. if (chang[32]):
  8. exit()
  9. pygame.time.delay(30)
  10. winSur.blit(bg_suface, (0, 0))
  11. for i in range(len(drops)):
  12. text = random.choice(texts)
  13. winSur.blit(text, (i * FONT_PX, drops[i] * FONT_PX))
  14. drops[i] += 1
  15. if drops[i] * 10 > PANEL_hight or random.random() > 0.95:
  16. drops[i] = 0
  17. pygame.display.flip()

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

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

四、部分代码:

  1. import random
  2. import pygame
  3. # 定义面板宽度和高度,字体大小
  4. PANEL_width = 1080
  5. PANEL_hight = 500
  6. FONT_PX = 15
  7. # 初始化pygame模块
  8. pygame.init()
  9. # 创建窗口并设置大小
  10. winSur = pygame.display.set_mode((PANEL_width, PANEL_hight))
  11. # 定义字体类型和大小
  12. font = pygame.font.SysFont("123.ttf", 25)
  13. # 创建背景表面
  14. bg_suface = pygame.Surface((PANEL_width, PANEL_hight), flags=pygame.SRCALPHA)
  15. pygame.Surface.convert(bg_suface)
  16. bg_suface.fill(pygame.Color(0, 0, 0, 28)) # 设置半透明黑色背景
  17. winSur.fill((0, 0, 0)) # 设置窗口背景颜色为黑色

五、完整代码:

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

 

6cebec4c57354f6d86869d30403751bb.png

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/98857
推荐阅读
相关标签
  

闽ICP备14008679号