一年一度的六一儿童节快到啦!预祝小朋友、大朋友们节日快乐
。
今天小编提前为大家送上一份炫酷的儿童节礼物,教大家用Python绘制黑客帝国中的代码雨。
一、代码雨效果图

1 纯数字版代码雨

2 纯字母版代码雨

3 各种字符混合版代码雨


二、代码雨实现分步骤讲解

1 加载包
"""代码用途:模拟黑客帝国中的代码雨作者:阿黎逸阳"""import randomimport pygamefrom pygame.locals import *from sys import exitimport string
pygame.init() #初始化 display 模块#全屏显示#screen = pygame.display.Info()#PANEL_width = screen.current_w #设置屏幕的宽度#PANEL_highly = screen.current_h #设置屏幕的高度#自定义显示大小PANEL_width = 800 #设置屏幕的宽度PANEL_highly = 900 #设置屏幕的高度FONT_PX = 20
winSur = pygame.display.set_mode((PANEL_width, PANEL_highly)) #设置屏幕的宽和高pygame.display.set_caption("模拟黑客帝国中的代码雨-阿黎逸阳") #设置标题background=pygame.image.load(r"F:\微信公众号\Python\32.六一儿童节黑客帝国\代码雨背景.png") #设置背景图片font = pygame.font.SysFont('verdana.ttf', 19) #从系统内加载字体bg_suface = pygame.Surface((PANEL_width, PANEL_highly), flags=pygame.SRCALPHA)pygame.Surface.convert(bg_suface) #修改图像(Surface 对象)的像素格式bg_suface.fill(pygame.Color(0, 0, 0, 28)) #设置填充的颜色winSur.fill((0, 0, 0))
#纯数字 texts = [font.render(str(i), True, (0, 255, 0)) for i in range(10)]#纯字母 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']#各种字符混合letter = string.printable #设置字符内容texts = [font.render(str(letter[i]), True, (0, 255, 0)) for i in range(len(letter))]column = int(PANEL_width / FONT_PX) # 根据窗口的宽度计算字母的列数drops = [0 for i in range(column)]
while True:for event in pygame.event.get():winSur.blit(background,(220,0))if event.type == pygame.QUIT:exit()elif event.type == pygame.KEYDOWN:if event.key == pygame.K_q:exit()pygame.time.delay(19)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] += 1if drops[i] * 10 > PANEL_highly or random.random() > 0.94:drops[i] = 0pygame.display.flip()
至此,黑客帝国中代码雨的生成讲解全部结束,如需全量可执行代码可以在公众号中回复“黑客帝国代码雨”,即可免费获取
。
参考文献
https://blog.csdn.net/qq_41556318/article/details/85952413https://blog.csdn.net/qq_41556318/article/details/86303502?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-4https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_9369565679767787175%22%7D&n_type=1&p_from=
往期回顾:


扫一扫关注我
19967879837
投稿微信号、手机号
原文作者:阿黎逸阳的代码;如有侵权,请联系管理员删除。