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

 更新时间:2020年02月20日 10:22:17   作者:ViatorSun  
这篇文章主要介绍了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制作摩斯密码翻译器

    摩斯密码是一种将文本信息作为一系列通断的音调、灯光或咔嗒声传输的方法,本文将介绍如何通过Python制作摩斯密码翻译器,感兴趣的童鞋可以关注一下
    2021-11-11
  • python使用matplotlib定制绘图的线型、标记类型

    python使用matplotlib定制绘图的线型、标记类型

    这篇文章主要给大家详细介绍了python使用matplotlib定制绘图的线型、标记类型,文中有详细的代码示例,具有一定的参考价值,需要的朋友可以参考下
    2023-07-07
  • macOS M1(Apple Silicon)安装配置Conda环境的具体实现

    macOS M1(Apple Silicon)安装配置Conda环境的具体实现

    由于常用的Anaconda和Miniconda现在都没有提供M1处理器支持的conda环境,以下是conda-forge提供的miniforge,感兴趣的可以了解一下
    2021-08-08
  • Python使用paramiko连接远程服务器执行Shell命令的实现

    Python使用paramiko连接远程服务器执行Shell命令的实现

    这篇文章主要介绍了Python使用paramiko连接远程服务器执行Shell命令的实现,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • 利用Python编写一个蹭WiFi的软件

    利用Python编写一个蹭WiFi的软件

    这篇文章主要为大家详细介绍了如何利用Python编写一个简易的蹭WiFi的软件,文中的示例代码讲解详细,感兴趣的小伙伴可以学习一下
    2023-06-06
  • 在Python中使用HTML模版的教程

    在Python中使用HTML模版的教程

    这篇文章主要介绍了在Python中使用HTML模版的教程,HTML模版也是Python的各大框架下的一个基本功能,需要的朋友可以参考下
    2015-04-04
  • 通过Python OpenGL的point sprite技术绘制雪花

    通过Python OpenGL的point sprite技术绘制雪花

    通常,点精灵(point sprite)技术被用于描述大量粒子在屏幕上的运动,自然也可以用于绘制雪花。本文将通过Python OpenGL绘制雪花,感兴趣的可以动手试一试
    2022-02-02
  • python判断一个变量是否已经设置的方法

    python判断一个变量是否已经设置的方法

    这篇文章主要介绍了python判断一个变量是否已经设置的方法,有需要的朋友们可以跟着学习参考下。
    2020-08-08
  • 介绍Python的@property装饰器的用法

    介绍Python的@property装饰器的用法

    这篇文章主要介绍了介绍Python的@property装饰器的用法,是Python学习进阶中的重要知识,代码基于Python2.x版本,需要的朋友可以参考下
    2015-04-04
  • Django模型验证器介绍与源码分析

    Django模型验证器介绍与源码分析

    这篇文章主要给大家介绍了关于Django模型验证器与源码分析的相关资料,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09

最新评论