Project1

标题: RGSS重写 [打印本页]

作者: Goldencolor    时间: 2009-9-17 09:41
标题: RGSS重写
本帖最后由 Goldencolor 于 2009-9-17 09:43 编辑

RGSS可以重写吗?写到事件那个脚本里面(注意)?
主要是为了重写调整阵营系统。如果有完整的阵营系统麻烦附上地址,可以调整坐标更换人员~
作者: DeathKing    时间: 2009-9-17 13:27
理论上应该不可以吧,脚本在游戏运行时就被编译好了,貌似不可以修改。

至于阵营系统就爱莫能助了。
作者: orochi2k    时间: 2009-9-17 14:13
可以,RUBY的特性是运行时可以随时修改源码的
脚本从来没被编译,只是被解释
作者: 沉默的米饭团    时间: 2009-9-17 16:55
灵活的语言。。但也是个不稳定的语言。。
作者: Goldencolor    时间: 2009-9-18 08:16
想到了~调用外部脚本~用内嵌式读取~。
作者: DeathKing    时间: 2009-9-19 12:57
可以,RUBY的特性是运行时可以随时修改源码的
脚本从来没被编译,只是被解释
orochi2k 发表于 2009-9-17 14:13



原来如此?看来我对Ruby事知之甚少啊……那RGSS怎么重写呢?
作者: 胖达达人    时间: 2009-9-19 13:13
要写到有关于“事件”(Game_Event,RPG::Event,等等),原则上规定是:
RPG中任何的类的initialize方法不可重写。(除非不用RM)
换言之,不可用这种方法来注册实变量。
RPG中的类的修改小心nil
内建类(主要是图像核心)尽量不要重写。
作者: 猫哥哥    时间: 2009-9-19 13:20
本帖最后由 猫哥哥 于 2009-9-19 13:28 编辑

如果是在脚本里重写RGSS。
直接重定义就行了。Bitmap之类没有公开的类方法可以用alias重定义。
----------------------------------------------------------------------------------
如果是想在运行时修改的话:
RGSS里屏蔽了require。
不过可以用eval,比较麻烦。

假设有个"test.txt"文件,内容如下:
  1. class A ;def say;p 'haha';end;end
复制代码
RGSS里测试代码如下:
  1. class A
  2.   def say
  3.     p "wuwu"
  4.   end
  5. end
  6. obj = A.new
  7. obj.say #=>输出内容为"wuwu"

  8. file = File.open("test.txt","r")
  9. ss = file.readlines
  10. file.close

  11. eval(ss[0])

  12. obj.say #=>输出内容为"haha"

  13. exit
复制代码
需要注意的是,如果外部的文本文件里包含中文等非ANSI字符,需要存成无BOM的UTF-8格式,因为RGSS默认的编码是UTF-8。
-----------------------------------------------------------------------------
作者: orochi2k    时间: 2009-9-19 15:25
要写到有关于“事件”(Game_Event,RPG::Event,等等),原则上规定是:
RPG中任何的类的initialize方法不可重写。(除非不用RM)
换言之,不可用这种方法来注册实变量。
RPG中的类的修改小心nil
内建类(主要是图像核 ...
胖达达人 发表于 2009-9-19 13:13


部分内建类是C写的 囧,不重写的原因主要是效率上的 囧

我自从某次重写完TILEMAP就彻底无语了
作者: Goldencolor    时间: 2009-9-20 08:14
恩~感谢了.
作者: 紫苏    时间: 2009-9-20 21:15
如果是在脚本里重写RGSS。
直接重定义就行了。Bitmap之类没有公开的类方法可以用alias重定义。
----------------------------------------------------------------------------------
如果是想在运行时修改的话:
R ...
猫哥哥 发表于 2009-9-19 13:20

require .rb 扩展名的文件是可以的,其它扩展名就会异常了




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