详解利用Python制作中文汉字雨效果
作者:Vertira 发布时间:2023-04-26 07:09:17
标签:Python,汉字雨
直接上代码
import pygame
import random
def main():
# 初始化pygame
pygame.init()
# 默认不全屏
fullscreen = False
# 窗口未全屏宽和高
WIDTH, HEIGHT = 1100, 600
init_width, init_height = WIDTH, HEIGHT
# 字块大小,宽,高
suface_height = 18
# 字体大小
font_size = 20
# 创建一个窗口
screen = pygame.display.set_mode((init_width, init_height))
# 字体
font = pygame.font.Font('msyh.ttf', font_size)
# 创建一个图像对象
bg_suface = pygame.Surface((init_width, init_height), flags=pygame.SRCALPHA)
pygame.Surface.convert(bg_suface)
bg_suface.fill(pygame.Color(0, 0, 0, 28))
# 用纯色填充背景
screen.fill((0, 0, 0))
# 显示的字符
letter = ['东南大学', ' ', '双一流', ' ', ' ', '大学', ' ', '机械工程学院', ' ', ' ', ' ', '东南', ' ', '双一流']
texts = [
font.render(str(letter[i]), True, (0, 255, 0)) for i in range(len(letter))
]
# 也可以替换成0 1 显示
# texts = [
# font.render('0',True,(0,255,0)),font.render('1',True,(0,255,0))
# ]
# 生成的列数
column = int(init_width / suface_height)
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:
# 按F11切换全屏,或窗口
if event.key == pygame.K_F11:
print("检测到按键F11")
fullscreen = not fullscreen
if fullscreen:
# 全屏效果,参数重设
size = init_width, init_height = pygame.display.list_modes()[0]
screen = pygame.display.set_mode(size, pygame.FULLSCREEN | pygame.HWSURFACE)
else:
init_width, init_height = WIDTH, HEIGHT
screen = pygame.display.set_mode((WIDTH, HEIGHT))
# 图像对象重新创建
bg_suface = pygame.Surface((init_width, init_height), flags=pygame.SRCALPHA)
pygame.Surface.convert(bg_suface)
bg_suface.fill(pygame.Color(0, 0, 0, 28))
column = int(init_width / suface_height)
drops = [0 for i in range(column)]
elif event.key == pygame.K_ESCAPE:
# 按ESC退出
exit()
# 延时
pygame.time.delay(30)
# 图像对象放到窗口的原点坐标上
screen.blit(bg_suface, (0, 0))
for i in range(len(drops)):
# 随机字符
text = random.choice(texts)
# 把字符画到该列的下雨的位置
screen.blit(text, (i * suface_height, drops[i] * suface_height))
# 更新下雨的坐标
drops[i] += 1
# 超过界面高度或随机数,下雨位置置0
if drops[i] * suface_height > init_height or random.random() > 0.95:
drops[i] = 0
# 更新画面
pygame.display.flip()
if __name__ == '__main__':
main()
运行效果:
import pygame的安装方法
pygame 这个包没有安装。python安装pygame包的方法
很简单:
使用国内源安装,清华源 中科,阿里都可以。
进入Anaconda3 的虚拟环境,输入下面的命令。快速安装
pip install pygame -i https://pypi.tuna.tsinghua.edu.cn/simple
安装效果
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting pygame
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/4c/0d/23f786eb611652b0125fcf334a0c21324922a756e6d954c50ecddfc8d4bb/pygame-2.1.2-cp36-cp36m-win_amd64.whl (8.4 MB)
|████████████████████████████████| 8.4 MB 119 kB/s
Installing collected packages: pygame
Successfully installed pygame-2.1.2
成功安装。
来源:https://blog.csdn.net/Vertira/article/details/123402233
0
投稿
猜你喜欢
- 前言 BeautifulSoup是主要以解析web网页的Python模块,它会提供一些强大的解释器,以解
- 项目背景 在之前的一个项目中用Python的Flask写了一个提供公共基础服务的Rest应用,上面大佬的意思是需要将这一部分封装成容器化服
- 其实之前笔者写代码的时候用到模型的保存和加载,需要用的时候就去度娘搜一下大致代码,现在有时间就来整理下整个pytorch模型的保存和加载,开
- 本文描述通过统计分析出医院信息系统需分区的表,对需分区的表选择分区键,即找出包括在你的分区键中的列(表的属性),对大型数据的管理比较有意义,
- 我发现有的网站利用了SQL SERVER提供的通过EXCHANGE或OUTLOOK收发邮件的扩展存储过程来完成收发和自动处理邮件(这句话太长
- 我们看一个现象:import pandas as pdtitanic = pd.read_csv('titanic_data.csv
- 流动网页设计有很多好处,但也只有在正确使用的时候。合适的技巧会使页面在大屏幕、小屏幕抑、PDA小屏幕上都能得到良好的呈现。但是,糟糕的代码结
- python爬虫要用到的库:请求库:实现 HTTP 请求操作urllib:一系列用于操作URL的功能。requests:基于 urllib
- PHP原型模式Prototype Pattern是什么原型模式是一种创建型模式,它可以通过复制现有对象来创建新的对象,而无需知道具体的创建过
- 这篇文章不谈大道理,只谈细节。关于facebook的大道理,大家可以去海内网的帖子《谁去救救麦田老师吧》讨论。那里有很多IT评论高手,谈的很
- 1、应该将 CSS 放置于结构的上方(一般放置于 head 元素内)。CSS 是解释型语言,Firefox 和 IE 在等待 CSS 传输完
- k近邻算法的介绍k近邻算法是一种基本的分类和回归方法,这里只实现分类的k近邻算法。k近邻算法的输入为实例的特征向量,对应特征空间的点;输出为
- 如果你是pytorch的用户,可能你会很熟悉pytorch生态圈中专门预处理图像数据集的torchvision库。从torchtext这个名
- 本文实例为大家分享了python树莓派红外反射传感器的程序,供大家参考,具体内容如下1、工具rpi3,微雪ARPI600,Infrared
- 一、安装软件包并创建项目$sudo pip install django$sudo python -c "import djang
- Douglas Crockford是JavaScript开发社区最知名的权威,是JSON、JSLint、JSMin和ADSafe之父,是《J
- 在ASP的实际操作中,总会发生这样的情况,如在银行,从我的帐户往费文华的帐户划款,我的帐户显示已经划出,但因银行的系统出现故障,导致费文华帐
- concat()是将tensor沿着指定维度连接起来。其中tensorflow1.3版中是这样定义的:concat(values,axis,
- 自己做了一个asp页面,用了一个td来显示留言本的最新消息;但是却无法控制其排版问题,因为该td的width确定,但是数据库中的文字却是未知
- 自定义查询对象 - objects①声明一个类EntryManager,继承自models.Manager,并添加自定义函数②使用创建的自定