加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 shitake 于 2018-4-6 00:54 编辑
众所周知,rm 新三作(此处借用晴兰的说法,RPG Maker 95、RPG Maker 2000、RPG Maker 2003 为旧三作,RMXP/RMVX/RMVA 为新三作)虽然有脚本支持,且编辑器也自带了脚本编辑器。但是,由于脚本被存在 Scripts.rvdata2 中。很难像开发普通的 ruby 程序一样开发(例如使用 JB 家的IDE之类的)。
即使如此,不少前辈也做过各种把脚本编写这一工作搬到外部的尝试。比如写完再手动粘回去之类的。期间我个人也搞出了 RM.dll 这种方法:https://rpg.blue/thread-380195-1-1.html
这种把脚本打包在一个文件的情况,在很多场景都会遇到。比如前端开发。不过人家有完整的工具流(以前的gulp,现在的webpack等)。最近看到⑨姐姐和黄鸡的工作,有动手重启了 RGUI 的坑。开发过程中顺手写了个按依赖对rm文件做合并的脚本。有了这个,无论是把脚本合并在一个文件再复制到 Scripts.rvdata2 中,或者直接由此来生成 Scripts.rvdata2 都行。
代码
由于只是单纯的字符串操作,并没有实际对脚本做解释,所以对于动态的 require 是没法支持的。对于循环引用也需要手动消除,否则就会爆栈。另外,目前只写了 require_relative 所对应的 loader。所以也只对 require_relative有响应。
消除方法是在其中一方的 require_relative 后加上 #delete。例如
a.rb
b.rb
require_relative 'a' #delete
require_relative 'a' #delete
在最后的文件中, a.rb 的内容将位于 b.rb 之后。
另外,一个约定是 require_relative 后跟的字符串用单引号。
用这个脚本,再加上 https://rpg.blue/thread-396263-1-1.html 这个,我们就可以很愉快的把脚本开发挪到 Ruby Mine/vs code/sublime text 等编辑器/集成开发环境上啦
一个使用这套方法的例子:https://github.com/molingyu/rgui
|