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 相关文章推荐
Python3基础之基本运算符概述
Aug 13 Python
在Python下尝试多线程编程
Apr 28 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
Jan 28 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
May 15 Python
python递归实现快速排序
Aug 18 Python
python傅里叶变换FFT绘制频谱图
Jul 19 Python
pytorch GAN伪造手写体mnist数据集方式
Jan 10 Python
基于python3实现倒叙字符串
Feb 18 Python
Python对称的二叉树多种思路实现方法
Feb 28 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
Mar 11 Python
浅谈keras中Dropout在预测过程中是否仍要起作用
Jul 09 Python
Python多分支if语句的使用
Sep 03 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游戏编程25个脚本代码
2011/02/08 PHP
php实现最简单的MVC框架实例教程
2014/09/08 PHP
万能的php分页类
2017/07/06 PHP
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
在JavaScript中操作时间之setYear()方法的使用
2015/06/12 Javascript
理解JavaScript事件对象
2016/01/25 Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
2016/02/25 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
javascript实现的上下无缝滚动效果
2016/09/19 Javascript
微信小程序 扎金花简单实例
2017/02/21 Javascript
利用jQuery实现一个简单的表格上下翻页效果
2017/03/14 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
Validform验证时可以为空否则按照指定格式验证
2017/10/20 Javascript
Vue DevTools调试工具的使用
2017/12/05 Javascript
基于Vue 服务端Cookies删除的问题
2018/09/21 Javascript
微信小程序实现点击空白隐藏的方法示例
2019/08/13 Javascript
vue实现登录拦截
2020/06/29 Javascript
理解JavaScript中的对象
2020/08/25 Javascript
详解Python import方法引入模块的实例
2017/08/02 Python
python中ASCII码字符与int之间的转换方法
2018/07/09 Python
python里 super类的工作原理详解
2019/06/19 Python
pycharm通过ssh连接远程服务器教程
2020/02/12 Python
python实现五子棋程序
2020/04/24 Python
python字典的值可以修改吗
2020/06/29 Python
Python模拟键盘输入自动登录TGP
2020/11/27 Python
小学教师学期末自我评价
2013/09/25 职场文书
电大学习个人自我评价范文
2013/10/04 职场文书
应聘自荐书
2013/10/08 职场文书
如何写你的创业计划书
2014/01/07 职场文书
授权委托书(完整版)
2014/09/10 职场文书
2014党员民主评议个人总结
2014/09/10 职场文书
2016年大学生社会实践心得体会
2015/10/09 职场文书
如何使用pdb进行Python调试
2021/06/30 Python
Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高
2021/08/23 MySQL
MySql数据库触发器使用教程
2022/06/01 MySQL
Python测试框架pytest核心库pluggy详解
2022/08/05 Golang