Python 实现黑客帝国中的字符雨的示例代码

所属分类: 脚本专栏 / python 阅读数: 657
收藏 0 赞 0 分享

本教程很简单吧,除了复制代码之外,希望你也抽点时间去看下“注意”,教程很简单,有问题请留言

废话不多数,先上图

注意

本项目中,需要用到文件库“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中seaborn包常用图形使用详解

今天小编就为大家分享一篇python中seaborn包常用图形使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

numpy:找到指定元素的索引示例

今天小编就为大家分享一篇numpy:找到指定元素的索引示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

python实现图片上添加图片

这篇文章主要为大家详细介绍了python实现图片上添加图片,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

从numpy数组中取出满足条件的元素示例

今天小编就为大家分享一篇从numpy数组中取出满足条件的元素示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Python实现图片添加文字

这篇文章主要为大家详细介绍了Python实现图片添加文字,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

python实现在多维数组中挑选符合条件的全部元素

今天小编就为大家分享一篇python实现在多维数组中挑选符合条件的全部元素,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Python如何使用BeautifulSoup爬取网页信息

这篇文章主要介绍了Python如何使用BeautifulSoup爬取网页信息,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

浅谈python已知元素,获取元素索引(numpy,pandas)

今天小编就为大家分享一篇浅谈python已知元素,获取元素索引(numpy,pandas),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

numpy ndarray 按条件筛选数组,关联筛选的例子

今天小编就为大家分享一篇numpy ndarray 按条件筛选数组,关联筛选的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Python pickle模块实现对象序列化

这篇文章主要介绍了Python pickle模块实现对象序列化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多