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快速排序代码实例
Nov 21 Python
使用Python3中的gettext模块翻译Python源码以支持多语言
Mar 31 Python
PyQt5主窗口动态加载Widget实例代码
Feb 07 Python
python 通过SSHTunnelForwarder隧道连接redis的方法
Feb 19 Python
Django用户认证系统 User对象解析
Aug 02 Python
python 控制Asterisk AMI接口外呼电话的例子
Aug 08 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
Jan 09 Python
Python统计学一数据的概括性度量详解
Mar 03 Python
windows下Pycharm安装opencv的多种方法
Mar 05 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
Mar 11 Python
Pytorch 使用不同版本的cuda的方法步骤
Apr 02 Python
python学习笔记之多进程
Aug 06 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数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
2014/07/05 PHP
PHP面向对象程序设计类的定义与用法简单示例
2016/12/27 PHP
用jquery和json从后台获得数据集的代码
2011/11/07 Javascript
你必须知道的Javascript知识点之"深入理解作用域链"的介绍
2013/04/23 Javascript
jquery实现倒计时代码分享
2014/06/13 Javascript
Javascript基础教程之for循环
2015/01/18 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
2015/03/24 Javascript
PHP结合jQuery实现红蓝投票功能特效
2015/07/22 Javascript
浅析AngularJS Filter用法
2015/12/28 Javascript
Node.js Streams文件读写操作详解
2016/07/04 Javascript
JavaScript中ES6字符串扩展方法
2016/08/26 Javascript
angular bootstrap timepicker TypeError提示怎么办
2017/06/13 Javascript
AngularJS模态框模板ngDialog的使用详解
2018/05/11 Javascript
jquery中为什么能用$操作
2019/06/18 jQuery
ionic2.0双击返回键退出应用
2019/09/17 Javascript
jquery将json转为数据字典的实例代码
2019/10/11 jQuery
Python中的面向对象编程详解(下)
2015/04/13 Python
python实现读取并显示图片的两种方法
2017/01/13 Python
Python实现七彩蟒蛇绘制实例代码
2018/01/16 Python
对numpy的array和python中自带的list之间相互转化详解
2018/04/13 Python
python递归法解决棋盘分割问题
2019/07/17 Python
pytorch 共享参数的示例
2019/08/17 Python
Python3常用内置方法代码实例
2019/11/18 Python
django ajax发送post请求的两种方法
2020/01/05 Python
python模拟斗地主发牌
2020/04/22 Python
Pandas把dataframe或series转换成list的方法
2020/06/14 Python
python Xpath语法的使用
2020/11/26 Python
美国瑜伽品牌:Gaiam
2017/10/31 全球购物
25道Java面试题集合
2013/05/21 面试题
《蚂蚁和蝈蝈》教学反思
2014/02/24 职场文书
《大作家的小老师》教学反思
2014/04/16 职场文书
承诺书格式
2014/06/03 职场文书
湖南省召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
校友回访母校寄语
2015/02/26 职场文书
MySQL 中如何归档数据的实现方法
2022/03/16 SQL Server
Java数据结构之堆(优先队列)
2022/05/20 Java/Android