详解利用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

成功安装。

到此这篇关于详解利用Python制作中文汉字雨效果的文章就介绍到这了,更多相关Python汉字雨内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python实现黑客字幕雨效果

    本文实例为大家分享了python实现字幕雨效果的具体代码,供大家参考,具体内容如下 #################################### #name : HACKER EMPIRE CAPTION RAIN #import modules try : import pygame import sys from pygame.locals import * from random import randint except : print("Load modules error

  • python+pygame实现代码雨(黑客帝国既视感)

    本文主要介绍了python+pygame实现代码雨,分享给大家,具体如下: 效果: #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2020/12/29 12:34 # @Author : huni # @File : 代码雨.py # @Software: PyCharm import random import pygame PANEL_width = 1600 PANEL_highly = 1000 FONT_PX = 15

  • 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 = pyga

  • 用Python实现流星雨效果的方法详解

    流星雨的前提是得先有一个流星,所谓流星,就是一个拖着尾巴的直线.所谓拖着尾巴,实际上是我们的浪漫想象,实质无非是尺寸和颜色的渐变罢了. 而matplotlib并不能给一条曲线映射多个颜色,故而可将一条线拆分成多条,效果如图所示 代码为 import numpy as np import matplotlib.pyplot as plt from matplotlib.collections import LineCollection x0,y0 = 1,1 #此为流星位置 ts = np.ara

  • Python使用Matplotlib实现雨点图动画效果的方法

    本文实例讲述了Python使用Matplotlib实现雨点图动画效果的方法.分享给大家供大家参考,具体如下: 关键点 win10安装ffmpeg animation函数使用 update函数 win10安装ffmpeg 因为最后要将动画图保存为.mp4格式,要用到ffmpeg,去官网下载,我az下载的是windows64bit static版本的,下载后解压到软件安装常用路径,并将ffmpeg路径添加到环境变量(这个方法在最后没用,但还是添加一下) animationa函数 准确来说是anima

  • python实现雨滴下落到地面效果

    本文实例为大家分享了python实现雨滴下落到地面效果的具体代码,供大家参考,具体内容如下 本程序在Windows 64位操作系统下,安装的是Anaconda3-4.2.0 import numpy as np import matplotlib.pyplot as plt from matplotlib import animation # New figure with white background fig = plt.figure(figsize=(6,6), facecolor='w

  • Python 实现黑客帝国中的字符雨的示例代码

    本教程很简单吧,除了复制代码之外,希望你也抽点时间去看下"注意",教程很简单,有问题请留言 废话不多数,先上图 注意 本项目中,需要用到文件库"pygame",不会的小伙伴,可以参考我的PyCharm教程里面有详细的讲解如何添加库:对于没有字体ttf的小伙伴,也不必担心,可以去这个链接下载,完全能够满足你的平日使用需求: # !/usr/bin/env python # -*- coding:utf-8 -*- # @Time : 2020.2 # @Author

  • 详解利用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 = pyga

  • 详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强

    前言 这周和大家分享如何用python识别图像里的条码.用到的库可以是zbar.希望西瓜6辛苦码的代码不要被盗了.(zxing的话,我一直没有装好,等装好之后再写一篇) 具体步骤 前期准备 用opencv去读取图片,用pip进行安装. pip install opencv-python 所用到的图片就是这个 使用pyzbar windows的安装方法是 pip install pyzbar 而mac的话,最好用brew来安装. (有可能直接就好,也有可能很麻烦) 装好之后就是读取图片,识别条码.

  • 利用Python制作心型照片墙效果

    每到一年一度的520等节假日,作为一个地地道道的程序猿心里慌得一批.除了吃饭买礼物看电影好像就没有更多的想法了,于是想想将女友从以前到现在的所有照片整理了一下准备制作一个前所未有的照片墙. 当然,这里我使用的照片是从百度上面拿下来的,私人照片不能公开,哈哈~ 没有女朋友的也可以试试,毕竟万一哪天就有了呢! 话不多说,进入正题吧,先将需要的非标准库梳理一下,只有一个PIL图像处理库,另外一个是os的标准库是用来操作文件的. from PIL import Image import os 然后,定义

  • 详解利用Python scipy.signal.filtfilt() 实现信号滤波

    本文将以实战的形式基于scipy模块使用Python实现简单滤波处理,包括内容有1.低通滤波,2.高通滤波,3.带通滤波,4.带阻滤波器.具体的含义大家可以查阅大学课程,信号与系统.简单的理解就是低通滤波指的是去除高于某一阈值频率的信号:高通滤波去除低于某一频率的信号:带通滤波指的是类似低通高通的结合保留中间频率信号:带阻滤波也是低通高通的结合只是过滤掉的是中间部分.上面所说的内容会在实战部分加以介绍,可以对比理解一下. 如何实现的呢?我的理解,是通过时域转换为频域,在频域信号中去除相应频域信号

  • 详解利用python+opencv识别图片中的圆形(霍夫变换)

    在图片中识别足球 先补充下霍夫圆变换的几个参数知识: dp,用来检测圆心的累加器图像的分辨率于输入图像之比的倒数,且此参数允许创建一个比输入图像分辨率低的累加器.上述文字不好理解的话,来看例子吧.例如,如果dp= 1时,累加器和输入图像具有相同的分辨率.如果dp=2,累加器便有输入图像一半那么大的宽度和高度. minDist,为霍夫变换检测到的圆的圆心之间的最小距离,即让我们的算法能明显区分的两个不同圆之间的最小距离.这个参数如果太小的话,多个相邻的圆可能被错误地检测成了一个重合的圆.反之,这个

  • 详解如何利用Python制作24点小游戏

    目录 先睹为快 游戏规则(改编自维基百科) 逐步实现 Step1:制作24点生成器 Step2:定义游戏精灵类 Step3:实现游戏主循环 先睹为快 24点 游戏规则(改编自维基百科) 从1~10这十个数字中随机抽取4个数字(可重复),对这四个数运用加.减.乘.除和括号进行运算得出24.每个数字都必须使用一次,但不能重复使用. 逐步实现 Step1:制作24点生成器 既然是24点小游戏,当然要先定义一个24点游戏生成器啦.主要思路就是随机生成4个有解的数字,且范围在1~10之间,代码实现如下:

  • 详解利用上下文管理器扩展Python计时器

    目录 一个 Python 定时器上下文管理器 了解 Python 中的上下文管理器 理解并使用 contextlib 创建 Python 计时器上下文管理器 使用 Python 定时器上下文管理器 写在最后 上文中,我们一起学习了手把手教你实现一个 Python 计时器.本文中,云朵君将和大家一起了解什么是上下文管理器 和 Python 的 with 语句,以及如何完成自定义.然后扩展 Timer 以便它也可以用作上下文管理器.最后,使用 Timer 作为上下文管理器如何简化我们自己的代码. 上

  • 详解利用装饰器扩展Python计时器

    目录 介绍 理解 Python 中的装饰器 创建 Python 定时器装饰器 使用 Python 定时器装饰器 Python 计时器代码 其他 Python 定时器函数 使用替代 Python 计时器函数 估计运行时间timeit 使用 Profiler 查找代码中的Bottlenecks 总结 介绍 在本文中,云朵君将和大家一起了解装饰器的工作原理,如何将我们之前定义的定时器类 Timer 扩展为装饰器,以及如何简化计时功能.最后对 Python 定时器系列文章做个小结. 这是我们手把手教你实

  • 详解用Python爬虫获取百度企业信用中企业基本信息

    一.背景 希望根据企业名称查询其经纬度,所在的省份.城市等信息.直接将企业名称传给百度地图提供的API,得到的经纬度是非常不准确的,因此希望获取企业完整的地理位置,这样传给API后结果会更加准确. 百度企业信用提供了企业基本信息查询的功能.希望通过Python爬虫获取企业基本信息.目前已基本实现了这一需求. 本文最后会提供具体的代码.代码仅供学习参考,希望不要恶意爬取数据! 二.分析 以苏宁为例.输入"江苏苏宁"后,查询结果如下: 经过分析,这里列示的企业信息是用JavaScript动

  • 详解用Python调用百度地图正/逆地理编码API

    一.背景 (正)地理编码指的是:将地理位置名称转换成经纬度: 逆地理编码指的是:将经纬度转换成地理位置信息,如地名.所在的省份或城市等 百度地图提供了相应的API,可以方便调用.相应的说明文档如下: 正地理编码 逆地理编码 具体API的参数可以查看相应的"服务文档": 不过首次使用时需要申请,具体在控制台.申请AK的方式可参见其他文章. 二.源码 废话不多说,直接放源码.这里提供了Python调用这两个API的方法. #!/usr/bin/env python # -*- coding

随机推荐