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中常用的各种数据库操作模块和连接实例
May 29 Python
Python写的服务监控程序实例
Jan 31 Python
低版本中Python除法运算小技巧
Apr 05 Python
Django中传递参数到URLconf的视图函数中的方法
Jul 18 Python
Python 网页解析HTMLParse的实例详解
Aug 10 Python
Python 查看文件的编码格式方法
Dec 21 Python
TensorFlow的权值更新方法
Jun 14 Python
python中web框架的自定义创建
Sep 08 Python
详解有关PyCharm安装库失败的问题的解决方法
Feb 02 Python
使用python matploblib库绘制准确率,损失率折线图
Jun 16 Python
增大python字体的方法步骤
Jul 05 Python
python读取并查看npz/npy文件数据以及数据显示方法
Apr 14 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循环语句笔记(foreach,list)
2011/11/29 PHP
ecshop后台编辑器替换成ueditor编辑器
2015/03/03 PHP
PHP中的命名空间详细介绍
2015/07/02 PHP
非常有用的9个PHP代码片段
2016/04/06 PHP
laravel利用中间件做防非法登录和权限控制示例
2019/10/21 PHP
让插入到 innerHTML 中的 script 跑起来的实现代码
2006/07/01 Javascript
js调试工具console.log()方法查看js代码的执行情况
2014/08/08 Javascript
基于Bootstrap+jQuery.validate实现Form表单验证
2014/12/16 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
jQuery原型属性和原型方法详解
2015/07/07 Javascript
jquery小火箭返回顶部代码分享
2015/08/19 Javascript
Angular 根据 service 的状态更新 directive
2016/04/03 Javascript
js实现加载更多功能实例
2016/10/27 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
2017/02/21 Javascript
bootstrap select2插件用ajax来获取和显示数据的实例
2018/08/09 Javascript
koa2+vue实现登陆及登录状态判断
2019/08/15 Javascript
JavaScript中0、空字符串、'0'是true还是false的知识点分享
2019/09/16 Javascript
JS实现随机点名器
2020/04/12 Javascript
Python实现希尔排序算法的原理与用法实例分析
2017/11/23 Python
python读取和保存图片5种方法对比
2018/09/12 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
python列表生成器迭代器实例解析
2019/12/19 Python
Numpy与Pytorch 矩阵操作方式
2019/12/27 Python
HTML5中使用json对象的实例代码
2018/09/10 HTML / CSS
FOREO官方网站:LUNA露娜洁面仪
2016/11/28 全球购物
日本面向世界,国际级的免税在线购物商城:DOKODEMO
2017/02/01 全球购物
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
会计应聘求职信范文
2013/12/17 职场文书
优秀士兵先进事迹
2014/02/06 职场文书
旅游管理专业大学生职业规划书
2014/02/27 职场文书
群众路线个人对照检查材料
2014/09/23 职场文书
青年岗位能手事迹材料
2014/12/23 职场文书
2015年销售内勤工作总结
2015/04/27 职场文书
投诉书范文
2015/07/02 职场文书
2016重阳节红领巾广播稿
2015/12/18 职场文书
Linux中Nginx的防盗链和优化的实现代码
2021/06/20 Servers