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之编写类之四再论继承
Oct 11 Python
Python实现将n个点均匀地分布在球面上的方法
Mar 12 Python
Python中遇到的小问题及解决方法汇总
Jan 11 Python
python安装numpy&安装matplotlib& scipy的教程
Nov 02 Python
python 用正则表达式筛选文本信息的实例
Jun 05 Python
Python实现的微信好友数据分析功能示例
Jun 21 Python
python 切换root 执行命令的方法
Jan 19 Python
使用python实现抓取腾讯视频所有电影的爬虫
Apr 15 Python
python给图像加上mask,并提取mask区域实例
Jan 19 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
Jul 09 Python
Django web自定义通用权限控制实现方法
Nov 24 Python
Django+Celery实现定时任务的示例
Jun 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引用计数器进行垃圾收集机制介绍
2012/09/19 PHP
php实现计算百度地图坐标之间距离的方法
2016/05/05 PHP
PHP加密解密类实例代码
2016/07/20 PHP
PHP微信企业号开发之回调模式开启与用法示例
2017/11/25 PHP
使用Laravel中的查询构造器实现增删改查功能
2019/09/03 PHP
基于jquery的Repeater实现代码
2010/07/17 Javascript
onclick与listeners的执行先后问题详细解剖
2013/01/07 Javascript
JS运动基础框架实例分析
2015/03/03 Javascript
使用JavaScript刷新网页的方法
2015/06/04 Javascript
谈谈Jquery中的children find 的区别有哪些
2015/10/19 Javascript
JavaScript判断页面加载完之后再执行预定函数的技巧
2016/05/17 Javascript
jquery自定义表单验证插件
2016/10/12 Javascript
js实现模糊匹配功能
2017/02/15 Javascript
作为老司机使用 React 总结的 11 个经验教训
2017/04/08 Javascript
vue2.0 keep-alive最佳实践
2017/07/06 Javascript
Vue组件实例间的直接访问实现代码
2017/08/20 Javascript
详解vue2.0+vue-video-player实现hls播放全过程
2018/03/02 Javascript
js中apply和Math.max()函数的问题及区别介绍
2018/03/27 Javascript
Vue+element 解决浏览器自动填充记住的账号密码问题
2019/06/11 Javascript
AntV F2和vue-cli构建移动端可视化视图过程详解
2019/10/08 Javascript
python的re正则表达式实例代码
2018/01/24 Python
pandas 使用apply同时处理两列数据的方法
2018/04/20 Python
python实现在遍历列表时,直接对dict元素增加字段的方法
2019/01/15 Python
详解pycharm连接不上mysql数据库的解决办法
2020/01/10 Python
python 实现字符串下标的输出功能
2020/02/13 Python
快速实现一个简单的canvas迷宫游戏的示例
2018/07/04 HTML / CSS
StubHub澳大利亚:购买或出售您的门票
2019/08/01 全球购物
高校十八大报告感想
2014/01/27 职场文书
道路建设实施方案
2014/03/18 职场文书
合同协议书格式
2014/04/18 职场文书
优秀少先队大队辅导员事迹材料
2014/05/04 职场文书
房地产开发项目建议书
2014/05/16 职场文书
创先争优活动个人总结
2015/03/04 职场文书
张丽莉事迹观后感
2015/06/16 职场文书
学校体育节班级口号
2015/12/25 职场文书
CSS3 制作的图片滚动效果
2021/04/14 HTML / CSS