【Script】python 30行code 实现代码雨(Geek Style)

文章目录

  • 1. Introduction
  • 2. Code
    • 2.1 简洁版
    • 2.2 注释版
  • 3. Screenshot of Dynamic Effect
  • Reference
  • 彩蛋环节
    • My thoughts on computer Vision
    • a. Video3D与虚拟空间
    • b. 二十一世纪工科的乌云

1. Introduction

意外看到有b站科技博主使用代码雨锁屏动效,充满极客风格。

我好奇是怎么实现的,于是趁晚上时间稍微研究了一下脚本实现,供大家参考。

2. Code

pygame是一个Python库,用于开发2D图形和简单游戏的工具包。它提供了一系列功能来处理图形、声音、输入等方面的开发需求。

2.1 简洁版

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()

2.2 注释版

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()更新屏幕显示

3. Screenshot of Dynamic Effect

Demo:效果截屏

【Script】python 30行code 实现代码雨(Geek Style)_第1张图片

Reference

https://docs.python.org/zh-cn/3/library/

https://pypi.org/

彩蛋环节

My thoughts on computer Vision

本内容源于我对 计算机视觉 这门充满AI活力的 学科的思考。

a. Video3D与虚拟空间

HM20240104:

不同于 在视觉解决任务上的 分类方法,如图像分类、目标检测、语义分割 等任务,从视觉呈现的方式来看,计算机视觉也可以分为:

  1. Image2D:平面视觉静态显示:图片
  2. Video2D:平面视觉动态显示:视频
  3. Image3D:立体视觉静态显示:数字孪生/增强现实/立体投影/三维建模仿真
  4. Video3D:立体视觉动态显示:虚拟空间/虚拟现实/元宇宙/平行宇宙
  5. Others

1是常见的 在显示器端或平面投影端的 平面视觉静态显示。2是在1基础上加入了时间序列的 平面视觉动态显示。3是在1基础上增加了一个维度的 立体视觉静态显示,比如数字孪生、增强现实AR、立体投影、三维建模仿真等视觉呈现。4是在3基础上增加了一个时间序列,也可以叫做虚拟现实/元宇宙。

类比于马云曾提出和创造的虚拟经济,我将4会发展到的境界称之为虚拟空间。从视觉呈现的方式来看,Video3D将是计算机视觉皇冠顶端的明珠。与AI结合,与具身智能/机器人结合,到OICT融合,具有变革重塑现有社会方方面面的巨大潜力。

Create a simulated virtual Universe. 在具体的实现方式上,高精3D地图可以作为是 3 Image3D立体视觉静态显示/数字孪生 的具体应用产品体现。以现有的高精3D地图等产品为基础,可以进一步构建 Video3D 虚拟空间

b. 二十一世纪工科的乌云

HM20230528:

  1. 哲学中否定绝对的存在,任何技术都不是100%可靠的,比如微信的通信功能这样庞大的工程。
  2. 生成式AI存在的事实性错误仍没有完全解决,AI安全对社会的影响需要引起从业者的高度警惕,以负社会责任的态度发布和开源AI。
  3. 无论科技还是资本,都必须向善,才能促进社会发展和进步,否则只能阻碍甚至破坏社会进步。
  4. 科技人员的终身使命是推动人类科技文明进步,人工智能是顺应信息社会科技发展的产物,科技进步为人类生活服务。

HM20240104:

AI发展到今天,无论是文字、图片、音频、视频、用户在技术上都可以合成和生成,且技术使用的难度和门槛不断下降,比如通义千文Animate Anyone功能、GPT-4、Stable Diffusion、Gemini等。AI达到了对普通大众以假乱真的效果,足以使普通大众迷惑,以开放共享精神构建的互联网有可能在AI浪潮下走向瓦解,AI对现有的工业基础有可能造成毁灭式影响,我将之称之为二十一世纪工科的乌云

生成式AI对网页搜索page rank结果的影响

【Script】python 30行code 实现代码雨(Geek Style)_第2张图片
【Script】python 30行code 实现代码雨(Geek Style)_第3张图片
任何技术的诞生都是一把双刃剑,在看到AI可能的负面影响,加强AI监管、AI治理之外,也要看到AI对社会生产效率提高的积极影响。AI仍然是国家战略发展方向,不断将人类从繁重的智力劳动,乃至体力劳动中解放出来。


欢迎对本部分内容感兴趣的同学在评论区讨论,或与我私聊。欢迎点赞、收藏!

你可能感兴趣的:(cs,basis,python,pygame,开发语言,人工智能)