Project1

标题: RPG Maker MZ 源码解析笔记 (更新到第二章) [打印本页]

作者: 沉滞的剑    时间: 2020-8-23 11:21
标题: RPG Maker MZ 源码解析笔记 (更新到第二章)
本帖最后由 沉滞的剑 于 2020-8-24 23:30 编辑

RPG Maker MZ 源码解析笔记

由于P1不支持MD, 我新弄了个简书号, 把文章发到上面去了..

第一章 探究游戏生命周期

文章地址: https://www.jianshu.com/p/c48234408c3d

主要关注点有2个
其一:
MZ的生命周期已经托管给PIXI.Application的Ticker了
MZ向大多数的插件作者隐藏了生命周期的实现细节
导致这部分的代码简洁了一点点
分离技术细节和业务细节永远都是好事
其二:
新引入了一个入口类Main,
主要是用来处理脚本引用和初始化新的粒子系统
和MV中直接将脚本写到index.html有了区别
可能是为了以后拓展核心代码做准备?
另一个小细节是新的Main类使用了class关键字
这也是现在1.0.0版本里唯一一处使用了class关键字的地方
现在nwjs的node版本已经是13, 已经是非常新的了
不知道未来以后核心代码会不会统一更新到es6+?

第二章 用户输入检测

文章地址: https://www.jianshu.com/p/4ad50c43de6a

总体来说Input和TouchInput这两个的变化也不大
值得注意的是加入了虚拟按键的支持
细节很多, 但是看源码最好先抓住大脉络
应该注意到Input和TouchInput的数据流是如何传递的
从数据来源类型上可以分成依靠dom事件更新和依靠游戏loop更新的两种
也可以按状态类型分成瞬时状态和连续状态的两种
找出这些类型在代码中的分布就可以了解这部分代码运作的原理
不过不得不说这块代码写得的过于复杂, 有大段大段的重复代码, 重复利用率极低
我觉得还是有很多优化和改进的空间的

第三章 图像的加载和处理

文章地址 https://www.jianshu.com/p/be4a10f50592

作为一切可视内容的基础, Bitmap是一个小而复杂的类
主要是因为它被赋予了很多周边性的功能, 显得入口很杂
而如果只看输出部分, 理解到它最主要的目的是作为BaseTexture的封装以后,
整个代码就会变得更清晰了
看源码有时候最大的难点就是分清主次而不是逻辑有多复杂
很多情况是所有代码你都读得懂, 却捋不清顺序
就是因为被很多细节给就缠住了
作者: walf_man    时间: 2020-8-23 14:28

“MZ的生命周期已经托管给PIXI.Application的Ticker了
MZ向大多数的插件作者隐藏了生命周期的实现细节”

支持大佬的研究,如此说来,mv被各种插件搞得效率低下很卡得情况会在mz中不复存在?
作者: fux2    时间: 2020-8-23 17:06
早知道有人研究我就直接白漂了(x
就是文章有点短,期待后续
作者: walf_man    时间: 2020-8-23 23:15
之前最大1000的数量也提升到2000了;
插件管理器开关方便了打勾就行;
插件名后面单独显示作者名了;
插件指令用起来比以前更直观了;
群友月神还发现了一点,如果用外部编辑器编辑了数据文件,那么mz编辑器会即时的弹出提示框,说外部改变了数据是否重新加载,蛮好的

还有很多有待发掘

另外,yep插件也做了加密了,015免费,234收费,他的命名规则可供大家学习借鉴,命名就体现了插件排放的顺序,这点很好
几个插件大佬也加入了yep组建了一个叫做visu的团队?
不错
作者: kklt    时间: 2020-8-24 18:13
nice

作者: comqocit    时间: 2021-3-31 14:54
这么好的帖咋回复不多呢,好像看后续啊
作者: beiduo    时间: 2021-3-31 20:42
支持!支持!支持!
作者: redsight    时间: 2021-4-1 20:58
期待后续……
作者: 帝卡尔    时间: 2023-10-17 01:06
大佬太强了啊点赞
作者: ccb1240    时间: 2023-10-17 08:14
新手進來學習,期待後續更新,真心感謝您的分享!
作者: Fzerg    时间: 2024-4-15 11:24

好教程,我值得拥有~




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1