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获取GY-85九轴模块信息示例
Dec 05 Python
MySQL中表的复制以及大型数据表的备份教程
Nov 25 Python
python好玩的项目—色情图片识别代码分享
Nov 07 Python
JSONLINT:python的json数据验证库实例解析
Nov 28 Python
python实现xlsx文件分析详解
Jan 02 Python
python 对key为时间的dict排序方法
Oct 17 Python
利用python提取wav文件的mfcc方法
Jan 09 Python
详解python使用turtle库来画一朵花
Mar 21 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
Sep 28 Python
Python 如何操作 SQLite 数据库
Aug 17 Python
在pycharm中文件取消用 pytest模式打开的操作
Sep 01 Python
Python中使用Opencv开发停车位计数器功能
Apr 04 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代码
2010/07/17 PHP
浅析十款PHP开发框架的对比
2013/07/05 PHP
PHP Hash算法:Times33算法代码实例
2015/05/13 PHP
制作个性化的WordPress登陆界面的实例教程
2016/05/21 PHP
json的定义、标准格式及json字符串检验
2014/05/11 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
ECMAScript5(ES5)中bind方法使用小结
2015/05/07 Javascript
jQuery+JSON实现AJAX二级联动实例分析
2015/12/18 Javascript
JavaScript中全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)的代码分享
2016/11/01 Javascript
jQuery无缝轮播图代码
2016/12/22 Javascript
对于input 框限定输入值为浮点型的js代码
2017/09/25 Javascript
详解小程序如何避免多次点击,重复触发事件
2019/04/08 Javascript
关于vue项目中搜索节流的实现代码
2019/09/17 Javascript
VSCode搭建React Native环境
2020/05/07 Javascript
JavaScript React如何修改默认端口号方法详解
2020/07/28 Javascript
闭包在python中的应用之translate和maketrans用法详解
2014/08/27 Python
pandas对指定列进行填充的方法
2018/04/11 Python
Python应用库大全总结
2018/05/30 Python
python的scikit-learn将特征转成one-hot特征的方法
2018/07/10 Python
Python退火算法在高次方程的应用
2018/07/26 Python
Python3 ID3决策树判断申请贷款是否成功的实现代码
2020/05/21 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
H5 canvas实现贪吃蛇小游戏
2017/07/28 HTML / CSS
理肤泉加拿大官网:La Roche-Posay加拿大
2018/07/06 全球购物
美国排名第一的葡萄酒俱乐部:Firstleaf Wine Club
2020/01/02 全球购物
数学系毕业生的自我评价
2014/01/10 职场文书
酒店节能降耗方案
2014/05/08 职场文书
奥巴马就职演讲稿
2014/05/15 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
2014年仓库管理工作总结
2014/12/17 职场文书
2019各种承诺书范文
2019/06/24 职场文书
请学会珍惜眼前,因为人生没有下辈子!
2019/11/12 职场文书
Nginx tp3.2.3 404问题解决方案
2021/03/31 Servers
关于MybatisPlus配置双数据库驱动连接数据库问题
2022/01/22 Java/Android
PostgreSQL聚合函数介绍以及分组和排序
2022/04/12 PostgreSQL
Windows Server 2012 R2 磁盘分区教程
2022/04/29 Servers