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


Posted in Python onFebruary 20, 2020

本教程很简单吧,除了复制代码之外,希望你也抽点时间去看下“注意”,教程很简单,有问题请留言

废话不多数,先上图

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

注意

本项目中,需要用到文件库“pygame”,不会的小伙伴,可以参考我的PyCharm教程里面有详细的讲解如何添加库;对于没有字体ttf的小伙伴,也不必担心,可以去这个链接下载,完全能够满足你的平日使用需求;

# !/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time : 2020.2
# @Author : 绿色羽毛
# @Email : lvseyumao@foxmail.com
# @Blog : https://blog.csdn.net/ViatorSun
# @Note : 类似"黑客帝国"中的代码雨效果


#导入系统文件库
import pygame
import random
from pygame.locals import *
from random import randint



#定义一些窗体参数及加载字体文件
SCREEN_WIDTH = 900   # 窗体宽度
SCREEN_HEIGHT = 600   # 窗体宽度
LOW_SPEED = 4    # 字体移动最低速度
HIGH_SPEED = 10    # 字体移动最快速度
FONT_COLOR = (00,150,00) # 字体颜色
FONT_SIZE = 5    # 字体尺寸
FONT_NOM = 20    # 显示字体数量 从0开始
FONT_NAME = "calibrii.ttf" # 注意字体的文件名必须与真实文件完全相同(注意ttf的大小写),且文件名不能是中文
FREQUENCE = 10    # 时间频度
times = 0     # 初始化时间


# 定义随机参数
def randomspeed() :
 return randint(LOW_SPEED,HIGH_SPEED)
def randomposition() :
 return randint(0,SCREEN_WIDTH),randint(0,SCREEN_HEIGHT)
def randomoname() :
 return randint(0,100000)
def randomvalue() :
 return randint(0,100)    # this is your own display number range


#class of sprite
class Word(pygame.sprite.Sprite) :
 def __init__(self,bornposition) :
  pygame.sprite.Sprite.__init__(self)
  self.value = randomvalue()
  self.font = pygame.font.Font(FONT_NAME,FONT_SIZE)
  self.image = self.font.render(str(self.value),True,FONT_COLOR)
  self.speed = randomspeed()
  self.rect = self.image.get_rect()
  self.rect.topleft = bornposition

 def update(self) :
  self.rect = self.rect.move(0,self.speed)
  if self.rect.top > SCREEN_HEIGHT :
   self.kill()


#init the available modules
pygame.init()
screen = pygame.display.set_mode((SCREEN_WIDTH,SCREEN_HEIGHT))
pygame.display.set_caption("ViatorSun CodeRain")
clock = pygame.time.Clock()
group = pygame.sprite.Group()
group_count = int(SCREEN_WIDTH / FONT_NOM)


#mainloop
while True :
 time = clock.tick(FREQUENCE)
 for event in pygame.event.get() :
  if event.type == QUIT :
   pygame.quit()
   exit()

 screen.fill((0,0,0))
 for i in range(0,group_count) :
  group.add(Word((i * FONT_NOM,-FONT_NOM)))

 group.update()
 group.draw(screen)
 pygame.display.update()

到此这篇关于Python 实现黑客帝国中的字符雨的示例代码的文章就介绍到这了,更多相关Python 黑客帝国中的字符雨内容请搜素三水点靠木以前的文章或下面相关文章,希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python处理二进制数据的方法
Jun 03 Python
Python实现读取文件最后n行的方法
Feb 23 Python
Python制作豆瓣图片的爬虫
Dec 28 Python
Python使用win32 COM实现Excel的写入与保存功能示例
May 03 Python
python3实现windows下同名进程监控
Jun 21 Python
Python爬取数据并写入MySQL数据库的实例
Jun 21 Python
Python 数值区间处理_对interval 库的快速入门详解
Nov 16 Python
Python3 Tkinter选择路径功能的实现方法
Jun 14 Python
ubuntu 16.04下python版本切换的方法
Jun 14 Python
python多进程并发demo实例解析
Dec 13 Python
Python3爬虫里关于Splash负载均衡配置详解
Jul 10 Python
解决pytorch 模型复制的一些问题
Mar 03 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
Feb 20 #Python
Python OpenCV读取显示视频的方法示例
Feb 20 #Python
基于spring boot 日志(logback)报错的解决方式
Feb 20 #Python
Django使用Celery加redis执行异步任务的实例内容
Feb 20 #Python
python logging.basicConfig不生效的原因及解决
Feb 20 #Python
Python3 shutil(高级文件操作模块)实例用法总结
Feb 19 #Python
python logging设置level失败的解决方法
Feb 19 #Python
You might like
地摊中国 - 珍藏老照片
2020/08/18 杂记
一个用php3编写的简单计数器
2006/10/09 PHP
PHP spl_autoload_register实现自动加载研究
2011/12/06 PHP
php+mysqli实现批量替换数据库表前缀的方法
2014/12/29 PHP
PHP实现根据图片色界在不同位置加水印的方法
2015/08/08 PHP
Laravel框架自定义验证过程实例分析
2019/02/01 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
2019/04/09 PHP
网页自动刷新,不产生嗒嗒声的一个解决方法
2007/03/27 Javascript
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
firefox浏览器下javascript 拖动层效果与原理分析代码
2007/12/04 Javascript
基于jquery的无缝循环新闻列表插件
2011/03/07 Javascript
js导出格式化的excel 实例方法
2013/07/17 Javascript
选择复选框按钮置灰否则按钮可用
2014/05/22 Javascript
js实现回放拖拽轨迹从过程上进行分析
2014/06/26 Javascript
jQuery异步加载数据并添加事件示例
2014/08/24 Javascript
实例讲解js验证表单项是否为空的方法
2016/01/09 Javascript
jQuery与js实现颜色渐变的方法
2016/12/30 Javascript
JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)
2017/06/19 Javascript
静态页面实现 include 引入公用代码的示例
2017/09/25 Javascript
jquery实现联想词搜索框和搜索结果分页的示例
2018/10/10 jQuery
浅谈一个webpack构建速度优化误区
2019/06/24 Javascript
vue3.0搭配.net core实现文件上传组件
2020/10/29 Javascript
[01:05:29]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第二场 1月24日
2021/03/11 DOTA
Python3实现mysql连接和数据框的形成(实例代码)
2020/01/17 Python
python判断正负数方式
2020/06/03 Python
Python wordcloud库安装方法总结
2020/12/31 Python
高清屏下canvas重置尺寸引发的问题的解决
2019/10/14 HTML / CSS
英国第一蛋白粉品牌:Myprotein
2016/09/14 全球购物
Infababy英国:婴儿推车、Travel System婴儿车和婴儿汽车座椅销售
2018/05/23 全球购物
Skyscanner新西兰:全球领先的旅游搜索网站
2019/08/26 全球购物
古驰英国官网:GUCCI英国
2020/03/07 全球购物
2019年Java面试必问之经典试题
2012/09/12 面试题
私人会所最新创业计划书范文
2014/03/24 职场文书
出生公证书
2015/01/23 职场文书
Pytorch反向传播中的细节-计算梯度时的默认累加操作
2021/06/05 Python
Golang中channel的原理解读(推荐)
2021/10/16 Golang