惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
GbyAI
GbyAI
Stack Overflow Blog
Stack Overflow Blog
Apple Machine Learning Research
Apple Machine Learning Research
The Cloudflare Blog
WordPress大学
WordPress大学
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
F
Fortinet All Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Microsoft Azure Blog
Microsoft Azure Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 聂微东
L
LangChain Blog
云风的 BLOG
云风的 BLOG
Jina AI
Jina AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
I
InfoQ
大猫的无限游戏
大猫的无限游戏
MyScale Blog
MyScale Blog
人人都是产品经理
人人都是产品经理
小众软件
小众软件
量子位
The GitHub Blog
The GitHub Blog
博客园 - 【当耐特】

碎言

不懂就别瞎掰掰:【程序员的常识】写的什么玩意? AI 辅助编程下的程序设计与代码编写 使用 Next.js 和 Tailwind CSS 构建可编辑和删除的 ToDo 待办事项应用 探索编程新境界:MarsCode 助你一臂之力 使用 Next.js 和 Tailwind CSS 搭建静态图片展示站点并部署到 Vercel AI 辅助编程:免费工具的优缺点及官网一览 GitHub push更新总是失败,写个python脚本解决 把博客从GitHub迁移到到了vercel ComfyUI 和 Flux.1 安装与使用教程 Flux.1 入门必知:硬件、环境、模型 Git项目的子文件夹中的内容无法同步到远程仓库的解决方法 blender流体Fluid使用中没有流体、流体穿模等一些问题的解决方法 博客聚合网站:积薪,竟然关闭了! blender日常使用中的一些技巧 虽然只有我自己在用,但还是更新了碎言博客的源代码, 与其在迷茫中困惑,不如在努力中前进 差点忘了我还有一个博客... 秧歌、博客和AI 终于熬到了新手上路 好久没有更新博客了。。。 老妈大腿骨骨折,最近一直在医院护理 Hello, September! Ubuntu开机自动启动Docker容器运行WordPress Docker 简单快速安装部署WordPress Docker下安装MySQL 加碘盐能防核辐射的话,还怕什么核战争? shields.io 一个简洁、一致、清晰的徽章 Ubuntu下使用root登录ssh的设置 GitHub Actions 构建、部署 Next.js项目 我又用回了"IE"--edge
“编学编玩”用Pygame编写游戏(10)pygame实现一个黑客帝国矩...
J.sky · 2018-01-16 · via 碎言

当年电影《黑客帝国》中下落的字符矩阵大家应该都会有很深的印象,即使今天重温一遍这部经典之作,仍然会觉这种电脑特效做的真帅啊,什么时候我也能做出这种效果来?想做就做,既然人家能做出来我们也能,好吧,先上图,最近不是流行什么开局一张图么?

输入图片说明

Matrix的构思

我们把Matrix设计成矩阵下落的字符数组,整矩阵中有几十或上百条Matrix在下落,你可以想像一条条数组从天而降。。。。Matrix就是这其中的一条数组。 Matrix中有很多属性,用来控制自己的字符组成,下落速度,颜色深浅,间隔距离等,通过这些,控制自己在场景中下落,当然你的参数控制的越详细,可变数越多。

Matrix代码编写调试过程

刚开始的时候总觉得满屏的字符,应该从何处下手呢?,不妨先从场景中打印一组字符开始吧,新建一个场景,然后创建一个Matrix对象,在场景中打印出来, 当然这组字符是如何生成的呢?还要随机生成,好的,如果你想到这些了,那么你就去动手实践,随数机,字符,添加到数组。

c = random.randint(33, 127)
chr(c)

对,字符就是这样生成的,有关char的基础理论,大家不太了解的可以自己去复习一下。把随机生成的字符在场景中竖排打印出来,你就成功了一半了。

让Matrix动起来

场景中已经打印出来一组Matrix了,接下来我们就可以在Matrix.update()中控制修改他的下落,这里我把Matrix设置成了一个比较自由的类,生成的对象自控度还是很高的。 add()方法就是生成一个完整的自身,然后通过draw()方法在场景中渲染,update()中判断整组字符下落超屏外,即重新生成一组新的字符串继续下落,即可达成循环动画了。

Matrix代码缩写总结

感觉Matrix的编写是一次对编程基础的复习,其中涉及了大量的编程基础操作,是Python及Pygame学习中不可多得的教材,最主要是最终结果很帅哈。

输入图片说明

本文源码下载

请git clone My_pygame下所有代码,以免造成游戏跑不起来的情况。 本例源文件:PY_RPG.demo.Matrix.py