版权声明:转载请标注博主个人主页:http://blog.csdn.net/ViatorSun 及本篇博客地址 https://blog.csdn.net/ViatorSun/article/details/82751273
需要安装pygame模块,以及需要查找一个字体文件“格式为 .ttf”,将字体文件放在脚本同一路径即可。很简单吧,快去试试看,有问题请留言,看到后我会一一回复
废话不多数,先上图
# !/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time : 2018.
# @Author : 绿色羽毛
# @Email : [email protected]
# @Blog : https://blog.csdn.net/ViatorSun
# @Note : 类似"黑客帝国"中的代码雨效果
#import modules
import pygame
from pygame.locals import *
from random import randint
#define some datas
SCREEN_WIDTH = 900
SCREEN_HEIGHT = 600
LOW_SPEED = 10
HIGH_SPEED = 20
LOW_SIZE = 5
HIGH_SIZE = 50
FONT_SIZE = 20
FONT_NAME = "myfont.ttf"
FREQUENCE = 10
times = 0
#def random color
def randomcolor() :
return (randint(0,255),randint(0,255),randint(0,255))
def randomspeed() :
return randint(LOW_SPEED,HIGH_SPEED)
def randomposition() :
return (randint(0,SCREEN_WIDTH),randint(0,SCREEN_HEIGHT))
def randomsize() :
return randint(LOW_SIZE,HIGH_SIZE)
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,randomcolor())
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 HACKER EMPIRE CodeRain")
clock = pygame.time.Clock()
group = pygame.sprite.Group()
group_count = int(SCREEN_WIDTH / FONT_SIZE)
#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_SIZE,-FONT_SIZE)))
group.update()
group.draw(screen)
pygame.display.update()