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 相关文章推荐
Windows8下安装Python的BeautifulSoup
Jan 22 Python
详解tensorflow训练自己的数据集实现CNN图像分类
Feb 07 Python
python监控进程脚本
Apr 12 Python
python解决js文件utf-8编码乱码问题(推荐)
May 02 Python
python 从文件夹抽取图片另存的方法
Dec 04 Python
在python中将字符串转为json对象并取值的方法
Dec 31 Python
详解opencv Python特征检测及K-最近邻匹配
Jan 21 Python
python根据txt文本批量创建文件夹
Dec 08 Python
Python中常用的高阶函数实例详解
Feb 21 Python
python随机模块random的22种函数(小结)
May 15 Python
python中用ctypes模拟点击的实例讲解
Nov 26 Python
基于Python绘制子图及子图刻度的变换等的问题
May 23 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
php中配置文件操作 如config.php文件的读取修改等操作
2012/07/07 PHP
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
2013/05/07 PHP
如何解决PHP使用mysql_query查询超大结果集超内存问题
2016/03/14 PHP
php抽象方法和普通方法的区别点总结
2019/10/13 PHP
php swoft框架实例用法
2020/12/22 PHP
javascript 子窗体父窗体相互传值方法
2010/05/31 Javascript
JS DOM 操作实现代码
2010/08/01 Javascript
js Form.elements[i]的使用实例
2011/11/13 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
JS 操作Array数组的方法及属性实例解析
2014/01/08 Javascript
jquery 判断滚动条到达了底部和顶端的方法
2014/04/02 Javascript
js+CSS实现模拟华丽的select控件下拉菜单效果
2015/09/01 Javascript
jQuery实现带分组数据的Table表头排序实例分析
2015/11/24 Javascript
JavaScript进阶练习及简单实例分析
2016/06/03 Javascript
vue制作加载更多功能的正确打开方式
2016/10/12 Javascript
记一次vue去除#问题处理经过小结
2019/01/24 Javascript
纯js+css实现在线时钟
2020/08/18 Javascript
JavaScript实现简单动态表格
2020/12/02 Javascript
[47:20]DAC2018 4.4 淘汰赛 Optic vs Mineski 第一场
2018/04/05 DOTA
使用Python的Flask框架构建大型Web应用程序的结构示例
2016/06/04 Python
Python多进程池 multiprocessing Pool用法示例
2018/09/07 Python
pandas和spark dataframe互相转换实例详解
2020/02/18 Python
Django Admin后台添加数据库视图过程解析
2020/04/01 Python
python Matplotlib基础--如何添加文本和标注
2021/01/26 Python
CSS3 input框的实现代码类似Google登录的动画效果
2020/08/04 HTML / CSS
多视角3D逼真HTML5水波动画
2016/03/03 HTML / CSS
全球速卖通法国在线交易平台:AliExpress法国
2017/07/07 全球购物
Fanatics英国官网:美国体育电商
2018/11/06 全球购物
幼儿园母亲节活动方案
2014/03/10 职场文书
2014年党员承诺书范文
2014/05/20 职场文书
2015高三毕业寄语赠言
2015/02/27 职场文书
2015年医德医风工作总结
2015/04/02 职场文书
酒店宣传语大全
2015/07/13 职场文书
《初涉尘世》读后感3篇
2020/01/10 职场文书
opencv深入浅出了解机器学习和深度学习
2022/03/17 Python
本地搭建minio文件服务器(使用bat脚本启动)的方法
2022/07/15 Servers