Python 实现《黑客帝国》代码雨场景

部署运行你感兴趣的模型镜像

Python 实现《黑客帝国》代码雨场景

相关资源文件已经打包成EXE文件,可双击直接运行程序,且文章末尾已附上相关源码,以供大家学习交流,博主主页还有更多Python相关程序案例,秉着开源精神的想法,望大家喜欢,点个关注不迷路!!!

1. 简介:

说起电影《黑客帝国》,相信大部分人都看过或听说过,影片中有一个场景数字雨,如果你看过电影的话,应该对这个经典场景印象深刻,本文我们利用 Python中的Pygame库来创建图形界面和动画效果。

2. 运行效果:

请添加图片描述

3. 相关源码:

import random
import sys
import pygame
def gamestart():
    pygame.init()
    #参数设定
    screen=pygame.display.Info()
    WIDTH=screen.current_w
    HEIGHT=screen.current_h
    HSIZE=20
    #创建一个可视窗口
    window=pygame.display.set_mode(
        (WIDTH,HEIGHT),flags=pygame.FULLSCREEN|pygame.NOFRAME
    )#全屏显示,并设置无窗体控制按钮
    #加载字体
    font=pygame.font.SysFont('calibrii.ttf',HSIZE)
    #修改框体
    surface=pygame.Surface((WIDTH,HEIGHT),flags=pygame.SRCALPHA)
    pygame.Surface.convert(surface)
    #隐藏鼠标指针
    pygame.mouse.set_visible(False)
    #填充颜色
    surface.fill(pygame.Color(0,0,0,28))
    window.fill((0,0,0))
    #准备字符
    #数字版
    texts=[font.render(str(i),True,(0,255,0)) for i in range(2)]
    #字母版
    #letter=string.printable  #导入全部字母
    #texts=[font.render(str(letter[i]),True,(0,255,0)) for i in range(len(letter))]  #设置字体颜色
    #按屏幕的宽度计算可以在画板上放几列坐标并生成一个列表
    column=int(WIDTH/HSIZE)
    drops=[0 for i in range(column)]
    while True:
        #获取事件内容
        for event in pygame.event.get():
            if event.type==pygame.QUIT:
                #exit()
                pygame.quit()
                sys.exit()
            elif event.type==pygame.KEYDOWN:
                if event.key==pygame.K_ESCAPE:
                    #exit()
                    pygame.quit()
                    sys.exit()
        #以上是键盘事件处理
        #将暂停一段给定的毫秒数
        pygame.time.delay(20)
        #重新绘制图像
        window.blit(surface,(0,0))
        for i in range(len(drops)):
            text=random.choice(texts)
            #再次重绘,按坐标绘制字符
            #window.blit(text,(drops[i]*HSIZE,i*HSIZE))#横向跑码
            window.blit(text,(i*HSIZE,drops[i]*HSIZE))#纵向跑码
            drops[i]+=1
            #超出范围后重置坐标位置
            if drops[i]*10>HEIGHT or random.random()>0.95:
                drops[i]=0
        pygame.display.flip()
if __name__ == "__main__":
    gamestart()

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

创客白泽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值