因为使用Ruby轻松的能编写优良的模块化的代码,你会经常发现自己会写一些包含自包含的代码,比如面向x的接口,用于y的算法等。一般的时候,我们会把这些文件作为类或者模块的库。
有了这些文件,如果你想把它们整合到你的新程序中,Ruby提供了几种方法,现在先介绍一种:
[quote]require "filename"
Description
描述
I have been learning ruby and here are some of my discoveries.
本人学过ruby,最近钻研Ruby后有了些发现,特不揣谫陋,略伸管见。
rmpx uses ruby version 1.8.1, I found out by checking the RUBY_VERSION global constant.
RMXP采用的ruby版本是1.8.1,这个东西便是通过查询RUBY_VERSION的全局常量发现的。-_-0
The ruby 1.8.1 download is worthwhile if you write scripts.
It comes with better documentation, samples, and a code editor that has syntax checking .
倘若你想学写脚本,那么下载一个 ruby 1.8.1 还是很值得的,不一定非得死磨RGSS。
这个版本有了更优良的文件,范例,还附带一个代码编辑器,能够检查语法……
I think it is a good idea to write scripts and save them as a .rb file, and then load them into rmxp like so.
个人感觉把写完的脚本存为一个.rb扩展名的文件,然后再在RMXP中导入这个文件不失为一个写脚本的好方法,如下:
复制代码
- require 'Scripts\Test.rb'
search directories for scripts are added like this.
复制代码
- # $: is a global array. Each string specifies a directory to be searched for Ruby scripts.
- # $: 是一个全局数组,每一个字符都指定了一个文件夹以供搜索Ruby的脚本。
- $: << Dir.getwd
- # Dir.getwd Returns the path to the current working directory (where the game.exe and .rxproj are)
- # Dir.getwd 返回了一个当前正在使用的文件夹(也就是诸如Project1之类的游戏工程文件夹)路径 (Game.exe所在之处)。
For example, this code is in my project, in a script file just above Main. I add some directories, then load the scripts I want.
举个例子吧,下面这段代码就写在我工程的Main脚本前面,添加了一个文件夹,然后导入了需要的脚本文件:
复制代码
- $: << Dir.getwd
- $: << 'C:\Project1'
- # -----------------
- require 'Scripts\Test.rb'
(If you want to load scripts used by events you may have to load them in a rmxp script near the top of the list, I dont know, I have not yet worked with events much.Notice the ' ' strings, they are different then the " " strings, single quotes done use all the \ codes.)
(如果你想在事件的脚本中导入,可能需要在脚本编辑器中靠上的地方导入,未经测试,不太清楚。注意一下导入时的字符串,上面的例子中使用的是单引号 ' ',和双引号 " " 是不同的。在' '中,文件路径中的分隔符号都是用 \ ,而" "中却反之。)
[LINE]1,#dddddd[/LINE]
这样一来,导入的脚本文件中的内容就能在程序中生效了。写在在脚本文件中的内容会在导入的第一时间执行,可以先把扩展名改为txt,把内容改为:
复制代码
- p Math::PI
然后再执行上面的导入过程,就能看到效果了。
个人感言:这个功能可能就是方便某些朋友在其他编译器中编写脚本吧……比如用UE编写了所有自定义脚本,然后再在RGSS中逐个导入。当然这个方法在加密游戏中,就必须把文件放到Data中了……至于在事件中导入,有兴趣的朋友不妨试试,这样一来无非就是实现当游戏进行中突然改变系统,比如之前是横板战斗,突然变为了RTAB,不过……{/lh}
另外,ruby中, require 这个语句也可以用 load 代替,不同点在于load每次执行导入时,都会包含一个ruby源文件,而require每个文件只包含一次。另外就是require可以导入更多类型的文件,如共享二进制的库文件之类的。
因为使用Ruby轻松的能编写优良的模块化的代码,你会经常发现自己会写一些包含自包含的代码,比如面向x的接口,用于y的算法等。一般的时候,我们会把这些文件作为类或者模块的库。
有了这些文件,如果你想把它们整合到你的新程序中,Ruby提供了几种方法,现在先介绍一种:
[quote]require "filename"
Description
描述
I have been learning ruby and here are some of my discoveries.
本人学过ruby,最近钻研Ruby后有了些发现,特不揣谫陋,略伸管见。
rmpx uses ruby version 1.8.1, I found out by checking the RUBY_VERSION global constant.
RMXP采用的ruby版本是1.8.1,这个东西便是通过查询RUBY_VERSION的全局常量发现的。-_-0
The ruby 1.8.1 download is worthwhile if you write scripts.
It comes with better documentation, samples, and a code editor that has syntax checking .
倘若你想学写脚本,那么下载一个 ruby 1.8.1 还是很值得的,不一定非得死磨RGSS。
这个版本有了更优良的文件,范例,还附带一个代码编辑器,能够检查语法……
I think it is a good idea to write scripts and save them as a .rb file, and then load them into rmxp like so.
个人感觉把写完的脚本存为一个.rb扩展名的文件,然后再在RMXP中导入这个文件不失为一个写脚本的好方法,如下:
复制代码
- require 'Scripts\Test.rb'
search directories for scripts are added like this.
复制代码
- # $: is a global array. Each string specifies a directory to be searched for Ruby scripts.
- # $: 是一个全局数组,每一个字符都指定了一个文件夹以供搜索Ruby的脚本。
- $: << Dir.getwd
- # Dir.getwd Returns the path to the current working directory (where the game.exe and .rxproj are)
- # Dir.getwd 返回了一个当前正在使用的文件夹(也就是诸如Project1之类的游戏工程文件夹)路径 (Game.exe所在之处)。
For example, this code is in my project, in a script file just above Main. I add some directories, then load the scripts I want.
举个例子吧,下面这段代码就写在我工程的Main脚本前面,添加了一个文件夹,然后导入了需要的脚本文件:
复制代码
- $: << Dir.getwd
- $: << 'C:\Project1'
- # -----------------
- require 'Scripts\Test.rb'
(If you want to load scripts used by events you may have to load them in a rmxp script near the top of the list, I dont know, I have not yet worked with events much.Notice the ' ' strings, they are different then the " " strings, single quotes done use all the \ codes.)
(如果你想在事件的脚本中导入,可能需要在脚本编辑器中靠上的地方导入,未经测试,不太清楚。注意一下导入时的字符串,上面的例子中使用的是单引号 ' ',和双引号 " " 是不同的。在' '中,文件路径中的分隔符号都是用 \ ,而" "中却反之。)
[LINE]1,#dddddd[/LINE]
这样一来,导入的脚本文件中的内容就能在程序中生效了。写在在脚本文件中的内容会在导入的第一时间执行,可以先把扩展名改为txt,把内容改为:
复制代码
- p Math::PI
然后再执行上面的导入过程,就能看到效果了。
个人感言:这个功能可能就是方便某些朋友在其他编译器中编写脚本吧……比如用UE编写了所有自定义脚本,然后再在RGSS中逐个导入。当然这个方法在加密游戏中,就必须把文件放到Data中了……至于在事件中导入,有兴趣的朋友不妨试试,这样一来无非就是实现当游戏进行中突然改变系统,比如之前是横板战斗,突然变为了RTAB,不过……{/lh}
另外,ruby中, require 这个语句也可以用 load 代替,不同点在于load每次执行导入时,都会包含一个ruby源文件,而require每个文件只包含一次。另外就是require可以导入更多类型的文件,如共享二进制的库文件之类的。
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |