创意起源
在行空板开机的过程中,有段代码显示很快,看起来挺酷的。不禁想到之前看《黑客帝国》电影的时候,看到过由0和1组成的数字雨信息流,印象比较深刻。觉得可以尝试在行空板上显示代码雨,下面话不多说,直接上演示视频。
作品展示
程序编写
import random #导入random库
import pygame #导入pygame库
from pygame.locals import * # 导入所有pygame.locals里的变量(比如下面大写的QUIT变量)
from sys import exit #从sys模组中引入exit即退出功能
#行空板的屏幕尺寸是240*320,以下屏幕设置可以选择是否全屏
screen_width=240 #设置屏幕宽度
screen_height=320 #设置屏幕高度
rain_num = 30 #设置代码雨的列数量
font_num = 25 # 设置显示字符的字体大小
pygame.init() # 初始化pygame
# 访问显示设备,创建一个窗口
# 使用 pygame.display.set_mode() 创建的新显示界面会自动替换掉旧的
# RESIZABLE 创建一个可调整尺寸的窗口
screen=pygame.display.set_mode([screen_width, screen_height], RESIZABLE)
pygame.display.set_caption("代码雨") # 设置标题(仅限于电脑端显示)
# 从系统字体库创建一个字体 Font 对象(这里选用123字体,可以选择其他字体比如arial等等)
font = pygame.font.SysFont("123.ttf", font_num)
# 创建一个图像对象,SRCALPHA表示每个像素包含一个 alpha 通道
bg_suface = pygame.Surface((screen_width, screen_height), flags=pygame.SRCALPHA)
# 使用纯色填充 Surface 对象
bg_suface.fill(pygame.Color(0, 0, 0, 16))
# 使用纯色填充窗口
screen.fill((0, 0, 0))
# 按屏幕的宽带计算可以在画板上放几列坐标并生成一个列表
drops = [0 for i in range(rain_num)]
while True:
# 从队列中获取事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_a: #按下A键停止
exit()
pygame.time.delay(30) # 暂停30ms
# 将图片放到窗口的原点坐标上,blit()不会更新屏幕-它在缓冲区中绘制图像,和flip()一起使用。
screen.blit(bg_suface, (0, 0))
#在新Surface上绘制文本
for i in range(rain_num):
#text = font.render(str(random.randint(0,9)), True, (0, 255, 0)) #生成随机数字字体,用于生成一个指定范围内的整数(0到9之间的数)
text = font.render(str(random.choice('0123456789abcdefghijklmnopqrstuvwxyz')), True, (0, 255, 0)) #从0-9和a-z的序列中获取一个随机元素
screen.blit(text, (i * screen_width/rain_num, drops[i] * (font_num - 10))) # 将字体按照当前下雨的位置刷新到窗口上
# 更新下雨的坐标,采用随机值,超过界面高度或随机数,下雨位置置0。
drops[i] += 1
if drops[i] * 10 > screen_height or random.random() > 0.95:
drops[i] = 0
# 更新屏幕
pygame.display.flip()
操作步骤详细介绍
1.打开mind+的python模式,在“项目”下拉框里找到“另存项目”,点击“另存项目”保存到命名好的文件夹内。
2.在“项目中的文件”这里新建一个py文件,比如命名为daimayu.py然后双击打开。
3.把代码复制到daimayu.py文件中。
4.先点击“终端”,弹出“连接远程终端”之后点击“10.1.2.3”进行连接。
5.点击“运行”,稍等片刻即可在行空板上显示代码雨效果。
6.如果需要停止程序运行,按下行空板上的A键即可停止。
|
-
|
|
|
|
|