意外看到有b站科技博主使用代码雨锁屏动效,充满极客风格。
我好奇是怎么实现的,于是趁晚上时间稍微研究了一下脚本实现,供大家参考。
pygame是一个Python库,用于开发2D图形和简单游戏的工具包。它提供了一系列功能来处理图形、声音、输入等方面的开发需求。
import pygame
import random
# 初始化
pygame.init()
font = pygame.font.SysFont('宋体', 25)
screen = pygame.display.set_mode((0, 0), pygame.FULLSCREEN)
screenwidth = screen.get_width()
screenheight = screen.get_height()
surface = pygame.Surface((screenwidth, screenheight), pygame.SRCALPHA)
pygame.Surface.convert(surface)
surface.fill((0, 0, 0, 10))
screen.fill((0, 0, 0, 10))
# 内容
str = [chr(i) for i in range(48, 58)] + [chr(i) for i in range(97, 123)]
texts = [font.render(i, True, (0, 255, 0)) for i in str]
lst = list(range(99))
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
pygame.time.delay(50)
screen.blit(surface, (0, 0))
for i in range(len(lst)):
text = random.choice(texts)
screen.blit(text, (i * 20, lst[i] * 20))
lst[i] += 1
if random.random() < 0.05:
lst[i] = 0
pygame.display.flip()
import pygame
import random
# 初始化
pygame.init() #调用pygame.init()初始化pygame
font = pygame.font.SysFont('宋体', 25) #创建字体对象并设置字体样式和大小
#创建一个全屏窗口
screen = pygame.display.set_mode((0, 0), pygame.FULLSCREEN)
#获取屏幕的宽度和高度
screenwidth = screen.get_width()
screenheight = screen.get_height()
#创建一个Surface对象用于在屏幕上绘制透明效果
surface = pygame.Surface((screenwidth, screenheight), pygame.SRCALPHA)
#对Surface对象进行转换和填充颜色
pygame.Surface.convert(surface)
surface.fill((0, 0, 0, 10))
#在屏幕上填充黑色背景
screen.fill((0, 0, 0, 10))
# 内容
str = [chr(i) for i in range(48, 58)] + [chr(i) for i in range(97, 123)] #定义一个包含数字和小写字母的列表,用于生成字符对象
texts = [font.render(i, True, (0, 255, 0)) for i in str] #将字符列表中的每个字符渲染为字体对象,并放入一个新的列表中
lst = list(range(99)) #创建一个包含0到98的整数的列表
#进入游戏循环,不断处理事件
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
pygame.time.delay(50) #设置延迟时间为50毫秒,控制字符下落速度
screen.blit(surface, (0, 0)) #在屏幕上绘制透明背景
#遍历整数列表,每次循环选择一个随机字符,并在对应的位置绘制到屏幕上
for i in range(len(lst)):
text = random.choice(texts)
screen.blit(text, (i * 20, lst[i] * 20))
lst[i] += 1 #将整数列表中的元素加1,实现字符下落效果
if random.random() < 0.05:
lst[i] = 0 #以5%的概率将整数列表中的元素重置为0,实现字符重新开始下落的效果
pygame.display.flip() #调用pygame.display.flip()更新屏幕显示
Demo:效果截屏
https://docs.python.org/zh-cn/3/library/
https://pypi.org/
本内容源于我对 计算机视觉 这门充满AI活力的 学科的思考。
HM20240104:
不同于 在视觉解决任务上的 分类方法,如图像分类、目标检测、语义分割 等任务,从视觉呈现的方式来看,计算机视觉也可以分为:
1是常见的 在显示器端或平面投影端的 平面视觉静态显示。2是在1基础上加入了时间序列的 平面视觉动态显示。3是在1基础上增加了一个维度的 立体视觉静态显示,比如数字孪生、增强现实AR、立体投影、三维建模仿真等视觉呈现。4是在3基础上增加了一个时间序列,也可以叫做虚拟现实/元宇宙。
类比于马云曾提出和创造的虚拟经济,我将4会发展到的境界称之为虚拟空间。从视觉呈现的方式来看,Video3D将是计算机视觉皇冠顶端的明珠。与AI结合,与具身智能/机器人结合,到OICT融合,具有变革重塑现有社会方方面面的巨大潜力。
Create a simulated virtual Universe. 在具体的实现方式上,高精3D地图可以作为是 3 Image3D立体视觉静态显示/数字孪生 的具体应用产品体现。以现有的高精3D地图等产品为基础,可以进一步构建 Video3D 虚拟空间 。
HM20230528:
HM20240104:
AI发展到今天,无论是文字、图片、音频、视频、用户在技术上都可以合成和生成,且技术使用的难度和门槛不断下降,比如通义千文Animate Anyone功能、GPT-4、Stable Diffusion、Gemini等。AI达到了对普通大众以假乱真的效果,足以使普通大众迷惑,以开放共享精神构建的互联网有可能在AI浪潮下走向瓦解,AI对现有的工业基础有可能造成毁灭式影响,我将之称之为二十一世纪工科的乌云。
生成式AI对网页搜索page rank结果的影响
任何技术的诞生都是一把双刃剑,在看到AI可能的负面影响,加强AI监管、AI治理之外,也要看到AI对社会生产效率提高的积极影响。AI仍然是国家战略发展方向,不断将人类从繁重的智力劳动,乃至体力劳动中解放出来。
欢迎对本部分内容感兴趣的同学在评论区讨论,或与我私聊。欢迎点赞、收藏!