查看: 3745|回复: 4

[讨论] 将RMVX脚本与RMXP互相转换,或通用化

[复制链接]
梦石
0
星屑
50
在线时间
37 小时
注册时间
2015-2-13
回帖
110
发表于 2015-2-22 20:03:39 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 布冷.逆天 于 2015-2-22 21:42 编辑

由于我并不懂RMVX的脚本,所以希望大神给点资料,让我们大家一起找RMVX脚本和RMXP脚本的共同点。
目前呢,我觉得可以先将共同点找出来,然后将不同点注释,用RMVX是将RMVX的脚本解除注释,RMXP同理。
也可以将不同点转换成共同点!@RyanBern @恐惧剑刃 @芯☆淡茹水@︶ㄣ牛排ぶ @晴兰   

点评

共同点:Ruby  发表于 2015-2-22 20:05

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2015-2-22 21:46:41 | 显示全部楼层
一般做法是:

[pre lang="ruby"]
# 由于我不知道 XP 的 Ruby 版本,但是听说过 self 的问题,就用顶层 self 来判断了。
RGSS_VERSION = if RUBY_VERSION == '1.9.2'
  :VA
elsif self
  :VX
else
  :XP
end

# ... maybe in a class definition ...

if RGSS_VERSION == :VA
  def some_method_in_va
    do_something_in_va
  end
elsif RGSS_VERSION == :VX
  def some_method_in_vx
    do_something_in_vx
  end
else
  # XP
end[/pre]

评分

参与人数 2星屑 +250 收起 理由
3106345123 + 50 我很赞同
恐惧剑刃 + 200 我很赞同

查看全部评分

回复

使用道具 举报

精灵族の天使<

梦石
0
星屑
1712
在线时间
3039 小时
注册时间
2007-3-16
回帖
33092

开拓者贵宾

发表于 2015-2-25 17:42:04 | 显示全部楼层
本帖最后由 精灵使者 于 2015-2-25 18:24 编辑
  1. OS = self ? (RUBY_VERSION == '1.9.2' ? :va : :vx) : :xp
  2. case OS
  3. when :xp
  4.   #code in RMXP
  5. when :vx
  6.   #code in RMVX
  7. when :va
  8.   #code in RMVA
  9. end
复制代码

点评

忘记了,多谢提醒,已经更正  发表于 2015-2-25 18:25
应该改为 OS = self ? (RUBY_VERSION == '1.9.2' ? :va : :vx) : :xp  发表于 2015-2-25 18:13

评分

参与人数 2星屑 +250 收起 理由
chd114 + 50 认可答案
恐惧剑刃 + 200 我很赞同

查看全部评分

回复

使用道具 举报

梦石
0
星屑
3348
在线时间
1120 小时
注册时间
2009-4-15
回帖
761
发表于 2015-3-24 15:07:45 | 显示全部楼层
如果按照楼上那样设定,岂不是一段代码写3次?加大工作量不好说,还不方便维护修改啊……

点评

是的,因此只适合功能比较独立的脚本。  发表于 2015-3-28 15:15
回复

使用道具 举报

梦石
0
星屑
677
在线时间
301 小时
注册时间
2015-2-17
回帖
130
发表于 2015-8-28 19:43:35 | 显示全部楼层
vx,va,xp通用类的脚本多不涉及数据
原因是调用方法不一样,比如vx属性6条,va八条。。。
于是vx改va华丽的失败了。

点评

所以改起来就呵呵哒。调用都不一样  发表于 2015-9-4 15:41
还有两点:1.不涉及ruby各版本的特性1.9和2.0的变动还是不小的。2.不涉及RGSS不同版本之间的新特性。比如VAF1里有注明不少地方属于RGSS3特有  发表于 2015-8-31 13:13
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部