Python 实现 黑客帝国中的字符雨

版权声明:转载请标注博主个人主页: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()



猜你喜欢

转载自blog.csdn.net/ViatorSun/article/details/82751273