前言
哈喽,我是木子,今天给大家制作一款超级炫酷的代码啦。
提到《黑K帝国》,字符雨可谓是让人印象深刻。
所有文章完整的素材+源码都在👇👇
粉丝白嫖源码福利,请移步至CSDN社区或文末公众hao即可免费。
这种科技感爆棚的特效,你是否也想来一套?
这个,可以有。
最近,小编刷到抖音关于很久之前流行的代码雨,很是心动,这炫酷的特效让我着实爱了一
把,这不,今天早早的开始了我的代码之旅。就为了能重现这次的代码特效。
有人问效果如此震撼,实现起来会不会很复杂?让我们下面看看具体的代码吧~
正文
本文是由多个项目写的内容啦:
由数字代码雨、字母代码雨、图形代码雨、再到数字、字母组合代码雨。
一、环境准备
1)运行环境
本文用到的环境如下—— Python3、Pycharm社区版,第三方模块:pygame。部分自带的库
只 要安装完 Python就可 以直接使用了,需要安装 的库的话看教程下🎐
一般安装:pip install +模块名
镜像源安装:pip install -i https://pypi.douban.com/simple/+模块名
(之前有说过安装报错的几种方式跟解决方法,不会安装的可以去看下,还有很多国内镜像源 也有文章的)
二、炫酷数字代码雨
1)代码展示
import random, pygame
FONT_PX = 15
pygame.init()
winSur = pygame.display.set_mode((500, 600))
font = pygame.font.SysFont('fangsong', 20)
bg_suface = pygame.Surface((500, 600), flags=pygame.SRCALPHA)
pygame.Surface.convert(bg_suface)
bg_suface.fill(pygame.Color(0, 0, 0, 13))
winSur.fill((0, 0, 0))
# 数字
texts = [font.render(str(i), True, (0, 255, 0)) for i in range(10)]
colums = int(500 / FONT_PX)
drops = [0 for i in range(colums)]
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
pygame.time.delay(33)
winSur.blit(bg_suface, (0, 0))
for i in range(len(drops)):
text = random.choice(texts)
winSur.blit(text, (i * FONT_PX, drops[i] * FONT_PX))
drops[i] += 1
if drops[i] * 10 > 600 or random.random() > 0.95:
drops[i] = 0
pygame.display.flip()
2)效果展示
三、炫酷字母代码雨
1)代码展示
import random, pygame
PANEL_width = 400
PANEL_highly = 500
FONT_PX = 15
pygame.init()
# 创建一个窗口
winSur = pygame.display.set_mode((PANEL_width, PANEL_highly))
font = pygame.font.SysFont('123.ttf', 22)
bg_suface = pygame.Surface((PANEL_width, PANEL_highly), flags=pygame.SRCALPHA)
pygame.Surface.convert(bg_suface)
bg_suface.fill(pygame.Color(0, 0, 0, 28))
winSur.fill((0, 0, 0))
letter = ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'z', 'x', 'c',
'v', 'b', 'n', 'm']
texts = [
font.render(str(letter[i]), True, (0, 255, 0)) for i in range(26)
]
# 按窗口的宽度来计算可以在画板上放几列坐标并生成一个列表
column = int(PANEL_width / FONT_PX)
drops = [0 for i in range(column)]
while True:
# 从队列中获取事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
elif event.type == pygame.KEYDOWN:
chang = pygame.key.get_pressed()
if (chang[32]):
exit()
# 暂停给定的毫秒数
pygame.time.delay(30)
# 重新编辑图像
winSur.blit(bg_suface, (0, 0))
for i in range(len(drops)):
text = random.choice(texts)
# 重新编辑每个坐标点的图像
winSur.blit(text, (i * FONT_PX, drops[i] * FONT_PX))
drops[i] += 1
if drops[i] * 10 > PANEL_highly or random.random() > 0.95:
drops[i] = 0
pygame.display.flip()
2)效果展示
四、炫酷图形代码雨
1)代码展示
from tkinter import *
import random, threading, time, os
# 初始雨滴纵坐标
INIT_HEIGHT = 1
# 雨滴创建
def rainmake(canvas, imagefile):
rainlist = []
for i in range(5):
# 根据图片,创建一排福字
rainlist.append(canvas.create_image(100 + 80 * i, INIT_HEIGHT, anchor=NE, image=imagefile))
return rainlist
# 雨滴下落
def raindown(tk, canvas, imagefile, sec):
# 线程间等待
time.sleep(sec)
rainlist = rainmake(canvas, imagefile)
# 每个福字的纵坐标值
height = [INIT_HEIGHT] * 10
while True:
# 每次移动前稍等一会
time.sleep(0.2)
# 5 个福字一起移动
for i in range(5):
# 如果福字到底了,则不继续移动
if not height[i] == 0:
# 设置下落步调
rnd = random.randint(5, 50)
canvas.move(rainlist[i], 0, rnd)
height[i] = height[i] + rnd
tk.update()
for i,h in enumerate(height):
if h > 400:
# 当福字走到最下方,则删除
canvas.delete(rainlist[i])
tk.update()
# 清空该福的 height
height[i] = 0
print(i,h,height)
# 全到底,则跳出循环
if height == [0] * 5:
print('break:',threading.current_thread().name)
break
def lookloop(tk, canvas, thread):
aliveflg = False
while True:
# 5s 检测一次
time.sleep(5)
for th in thread:
if th.is_alive():
aliveflg = True
else:
aliveflg = False
if aliveflg == False:
break
canvas.create_text(100 , 200, text='雨停了...', fill='red')
canvas.pack()
time.sleep(5)
tk.destroy()
def main():
# 创建窗口对象
tk = Tk()
tk.title('送福雨')
canvas_style = {
'bg':'white',
'height':'500',
'width':'410',
'cursor':'circle'
}
# 创建画布
canvas = Canvas(tk,canvas_style)
canvas.pack()
# 图片素材
if not os.path.exists('pic.gif'):
raise Exception('pic.gif file does not exists.')
imagefile = PhotoImage(file = 'pic.gif')
thread = []
for i in range(100):
thread.append(threading.Thread(target=raindown, args=(tk, canvas, imagefile, i)))
for t in thread:
t.start()
# 新开一个线程监控运行中的线程
threading.Thread(target=lookloop, args=(tk, canvas, thread)).start()
# 进入消息循环
tk.mainloop()
2)效果展示
五、炫酷数字、字母代码雨
1)代码展示
import random
import pygame
# 初始化参数设计
win_width = 1000
win_height = 800
font_px = 15
# 创建窗口及文本设计
pygame.init()
winsur = pygame.display.set_mode((win_width, win_height))
font = pygame.font.SysFont('', 23)
bg_suface = pygame.Surface((win_width, win_height), flags=pygame.SRCALPHA)
pygame.Surface.convert(bg_suface)
bg_suface.fill(pygame.Color(0, 0, 0, 28))
winsur.fill((0, 0, 0))
# 文本内容
letter = '1234567890!@#$%^&*qwertyuiopasdfghjklzxcvbnm'
texts = [font.render(letter[i], True, (0, 255, 0)) for i in range(44)]
# 显示设计
column = int(win_width / font_px)
drops = [0 for i in range(column)]
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
elif event.type == pygame.KEYDOWN:
change = pygame.key.get_pressed()
if change[32]:
exit()
# 延时30
pygame.time.delay(30)
winsur.blit(bg_suface, (0, 0))
for i in range(len(drops)):
text = random.choice(texts)
winsur.blit(text, (i * font_px, drops[i] * font_px))
drops[i] += 1
if drops[i] * 10 > win_height or random.random() > 0.95:
drops[i] = 0
2)效果展示
静态截图——
代码效果——
打包exe文件——
无需Python无需安装环境,双击即可开始运行程序,谁都可以运行这个代码哦~简单省事。
快发给你们那些朋友装一下吧 哈哈哈哈.jpg
这里就不展示exe文件了,需要的直接找我拿就好,对了除了exe打包的文件,还有详细的视频
讲解,需要的滴滴我哈。
六、炫酷效果展示
相信大家看过许许多多的关于计算机黑客、骇客、人工智能、AI方面的电影,每当黑客入侵某
个五角大楼,某个网站时,都会出现下面类型的画面,然后就轻而易举的成功入侵夺取管理员
权限了,这时候的我们,心情肯定是激动的无以复加,心里大喊着:666!!!,如果我有这
么厉害的技术就好了!这技术没办法给大家操作,但是类型的炫酷特效给大家演示了一波
除了代码雨比较基础的还能实现包括数字掉落、字符闪烁等效果哦,上面的代码只展示一个简
单的特效项目啦。难的(不会)↓
还能实现↓超酷的好吧~
只要你技术够强,更复杂更难的也在等你来挑战的啦↓
总结
好啦!内容到这里就写完了哈。看完这些内容是不是感受到了一种黑客气息扑面而来~
有没有心动,心动的不如行动,想学习编程的小可爱赶紧行动起来吧~先从最简单的Python编
程语言开始吧~
🎯完整的免费源码领取处:找我吖!文末公众hao可自行领取,滴滴我也可!
🔨推荐往期文章——
项目1.0 超级玛丽
程序员自制游戏:超级玛丽100%真实版,能把你玩哭了~【附源码】
项目1.1 扫雷
Pygame实战:据说这是史上最难扫雷游戏,没有之一,你们感受下......
项目1.4 水果忍者
【Pygame实战】风靡全球的切水果游戏升级版“水果忍者”上线啦,你敢来PK嘛?
项目7.0 赛车游戏
【Pygame实战】如果你是赛车爱好者:这款新赛车游戏分分钟让你上瘾(超跑又是谁的梦想?)
项目7.1 虐单身狗游戏
Pygame实战:慎点|虐单身狗的最高境界是…【附源码】
项目1.1 《极速车神打字小游戏》
【Python小游戏】通过这款专为程序员设计的《极限车神》小游戏,你的打字速度可以赢过专业录入员,这个秘密98%的人都不知道哦~(爆赞)
🎄文章汇总——
汇总合集 Python—2022 |已有文章汇总 | 持续更新,直接看这篇就够了
(更多内容+源码都在✨文章汇总哦!!欢迎阅读喜欢的文章🎉~