设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1722|回复: 1
打印 上一主题 下一主题

[胡扯] RMVA的次世代式开发【雾

[复制链接]

Lv3.寻梦者

梦石
0
星屑
4593
在线时间
1205 小时
注册时间
2016-4-7
帖子
982

开拓者

跳转到指定楼层
1
发表于 2018-4-6 00:43:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

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
RUBY 代码复制
  1. require_relative  'b'

b.rb
RUBY 代码复制
  1. 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


附庸的附庸不是我的附庸,女儿的女儿还是我的女儿。CK2沉迷ing

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

2
发表于 2018-4-6 00:54:00 | 只看该作者
感觉现阶段脚本编辑器加一个自动补全和备选补全应该够了···
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-27 05:42

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表