晴兰的反向Ruby教程-1 为了读F1教程和其他人脚本的入门

2012 年 11 月 22 日

这个教程是面向RM初学者的,要理解的东西不会很多,教程中的例子,希望能够手动一步步实现。我们是以RPG Maker VX ACE这个版本的RGSS来讲解的。

如果有不明白的地方,多运行和改改就行了。每个例子都是可以运行的。

本来,要写RGSS脚本,要先理解脚本语言也就是Ruby。反向呢,是区别于正向而言的。 在这里Ruby必须理解你,也就是一个脚本编写者的意图。不仅仅是这样,RPGMaker这个工具也要充分理解你作为一个游戏制作者的意图。不像很多其他语言,如果想以自己想要的方式去写程序,可能会变得很麻烦。但Ruby从一开始发明就不是这样的,更多的是人在编程,而不是程序语言必须限制人的思维。(不过这并不是说Ruby是一个不严谨的语言,人性化与编程原则并不冲突。)

在Windows系统下,双击记事本图标,也就能打开记事本,这是一个程序,也可以说是系统的一个功能。

在Windows命令提示符下,也可以通过直接输入notepad回车来打开记事本。

 

这一节的重点是,怎么定义一个功能(也就是怎么看别人定义了哪些功能),怎么使用定义的功能。

打开RMVA,新建一个工程。

打开工程文件夹:选择测试(倒数第二个菜单),然后选择打开游戏文件夹(最后一项)。将会看见游戏的文件夹。

复制脚本:进入其中的Data目录将Scripts.rvdata2复制一份,改名为MyScripts.rvdata2就行了。 如果看到的是没有后缀名.rvdata2的Scripts,改为MyScripts就行了。

删掉默认脚本:回到RMVA,打开脚本编辑器,在左侧把所有脚本都删掉。 以后就在这个工程的基础上来讲解。

 

从一个空的工程开始可以避免很多干扰

一行脚本能做到的事情有很多,首先我们来运行一个程序:

保存运行游戏,应该会打开一个记事本。 游戏会在关闭了记事本之后退出。

system的含义是给系统发送一个命令,让他启动程序,要启动的内容是”notepad.exe”。如果拿手机通信来比喻,可以发短信给系统,发短信这个方式是system,而内容是”notepad.exe”。

也可以发彩信: 启动程序 “notepad.exe”。 当然’启动程序’现在是没有的,下面就要说到。

也可以把notepad.exe换成别的名字,比方说”mspaint.exe”(画图),或者”winmine.exe” “mshearts.exe” “freecell.exe” “sol.exe”(依次是扫雷 红心大战 空当接龙 纸牌并不是所有机器上都有)

也可以把system换成别的预定义消息(方法),如常见的msgbox或者msgbox_p

事实上也可以约定说‘启动程序’的消息名字就是’启动程序‘而不是system,内容是记事本,于是改成下面的样子:

这个从数学函数来理解就相当于:

f(x) = 提示”将要启动”x的信息 然后运行x

y = “notepad.exe”

f(y)的结果? 当然是提示 “将要启动notepad.exe” 然后运行”notepad.exe”

 

 

也可以:

 

def…end是其他人脚本里面很常见的一个结构

3. 在Ruby里面,”定义消息“也可以是一个消息。

(名字是define_singleton_method。略长。含义是定义单个对象方法,对象就是消息的接受者,为这个接受者定义一个自定义消息。消息处理是一个函数,在Ruby里面,这种函数按照面向对象设计的惯例叫做方法。)

注意在要做的事里面用到了一个->{}结构,他只是一个块,而不是正式的消息,写法是

同时虽然前面没写出来,def … end也可以接受多于1个内容,也叫做参数,用逗号隔开:

Ruby内置define_singleton_method这类方法表明,可以很方便地为Ruby添加语法。原本是关键字的def,也可以降格成一行程序
alias也是其他人脚本里面一个很常见的用法

 

 

#Ruby教程

发表评论

电子邮件地址不会被公开。 必填项已用*标注


*