标题：RGSS
RGSS
日本的游戏制作软件Rpg Maker XP所使用的内部脚本系统，是ruby的扩展库。
  RGSS编辑器RGSS（Ruby Game Scripting System），本文档是从 Ruby 的参考手册上摘录下使用 RGSS 的必要信息，加上关于 RGSS 独特方法的解说重编辑而成。对于 RGSS 的用户，在游戏程序设计方面不重要的部分进行了大幅删减，对各处描述也稍作了修改。因此在描述上可能会出现不正确的情况。作为 Ruby 的参考，请注意那些非常简单的东西。
RGSS中的脚本：
在RMXP(Rpg Maker XP)中，按F11就可以打开[脚本编辑器]，左边的窗口是脚本列表，右边的窗口是脚本内容，左下角可以修改脚本名称。
在RMXP(Rpg Maker XP)中，游戏开始运行后，总是从最上边的脚本开始运行，依次往下，所以，经常把变量声明、类声明、函数声明、函数定义的脚本放在上面，而MAIN脚本总是放在最后。
RGSS语法
变量类型：
全局变量 $var
实变量 @var
局部变量 var
常量 VAR
数据类型（注：RGSS中变量类型为弱变量，无需定义，只要初始化即可。）：
数值型 0~9
浮点型 0~9，小数点
字符串型 加了""的在ASCII码表上的任意字符。
布尔型 true/false
空型 nil
RGSS是Ruby的游戏脚本系统，所以关键字与Ruby原版大同小异，但也有少数修改，如：
RGSS1.02J（或更高版本）中，puts()函数功能被简化为p，添加了print函数，
RGSS1.03J中添加了块注释方法，即以“=begin”开头，以“=end”结束。
RGSS遇到换行符就自动结束当前的这一行，这一点是与VB相似的，当然，RGSS也可以象C语言那样以西文分号结束，这点看习惯。
RGSS主程序开始与结束
begin
程序段
end
RGSS库的开始与结束
module 库名
程序段
end
RGSS类的开始与结束
class 类名 < [父类]
程序段
end
RGSS自定义函数的开始与结束
def 函数名[(参数)]
程序段
end
RGSS库的调用
include 库名
RGSS类的调用
类名.new[(类中initialize函数的参数)]
RGSS自定义函数的调用
函数名[(参数)]
RGSS中的条件分歧

程序示例
1,helloworld程序
begin
print("HelloWorld!!")
end
2,数值运算
begin
x = 10
y = 20
p x+y
end
3,条件判断
begin
a = 10
if a>=5
print("a的值大于等于5")
else
print("a的值小于等于5")
end
end
4,循环
begin
for i in 1..3
print("这是第#次显示")
end
end
begin
do
print("这是第#次显示")
while i <= 4
end
begin
loop do
i++
print("这是第#次显示")
if i = 4
break
end
end
end
5,函数调用
class My_Class
def mian # 主处理
x = 6
y = 5
addnum(x, y)
end
def addnum(num1, num2)
sum = num1 + num2
p sum
end
end
6,类的调用
begin
if $scene != nil
$scene.main
else
exit
end
$scene = Scene_MyClass.new
end
7,库的生成及调用
module MYMODULE
def division(num1, num2)
sum = num1/num2
return sum
end
end
class My_Class
include MYMODULE
def main
x = 25
y = 16
z = division(x, y)
p z
end
RGSS默认脚本结构
Ruby Game Script System
│  
├─Game_Actors    处理角色排列的类。
├─Game_BattleAction    处理行动 (战斗中的行动) 的类。
├─Game_Battler    处理战斗者的类。
│  ├─Game_Actor    处理角色的类。
│  └─Game_Enemy    处理敌人的类。
├─Game_Character    处理角色的类。
│  ├─Game_Event    处理事件的类。
│  └─Game_Player    处理主角的类。
├─Game_CommonEvent    处理公共事件的类。
├─Game_Map    处理地图的类。
├─Game_Party    处理同伴的类。
├─Game_Screen    处理屏幕的类。
│  └─Game_Picture    处理图片的类。
├─Game_SelfSwitches    处理独立开关的类。
├─Game_Switches    处理开关的类。
├─Game_System    处理系统附属数据的类。
├─Game_Temp    处理在没有存档的情况下的临时数据的类。
├─Game_Troop    处理队伍的类。
├─Game_Variables    处理变量的类。
├─Interpreter    执行事件命令的解释器中的命令的类。
├─Scene_Battle    处理战斗画面的类。
├─Scene_Debug    处理调试画面的类。
├─Scene_End    处理游戏结束画面的类。
├─Scene_Equip    处理装备画面的类。
├─Scene_File    处理游戏读取、存档画面的基类。
│  ├─Scene_Save    处理存档画面的类。
│  └─Scene_Load    处理读取画面的类。
├─Scene_Gameover    处理游戏结束画面的类。
├─Scene_Item    处理物品画面的类。
├─Scene_Map   处理地图画面的类。
├─Scene_Menu    处理菜单画面的类。
├─Scene_Name    处理名称输入画面的类。
├─Scene_Shop    处理商店画面的类。
├─Scene_Skill    处理技能画面的类。
├─Scene_Status    处理状态画面的类。
├─Scene_Title    处理标题画面的类。
├─Spriteset_Battle    处理战斗的精灵的类。
├─Spriteset_Map    处理地图的精灵的类。
├─Bitmap(RGSS)    位图的类。
├─Color(RGSS)    颜色的类。
├─Font(RGSS)    字体的类。
├─Plane(RGSS)    平面的类。
├─Rect(RGSS)    矩形的类。
├─RGSSError(RGSS)    处理 RGSS 内部异常的类。
├─RPG(Module)    集合了 RPGXP 数据结构等的模块。
│  ├─RPG::Cache(Module)    读取 RPGXP 的各种图片，建立并存储 Bitmap 对象的模块。
│  ├─RPG::Sprite(RGSS)    追加了 RPGXP 使用的各种效果处理的精灵的类。
│  │  └─Sprite_Character    角色显示用精灵。
│  │      └─Sprite_Battler    战斗显示用精灵。
│  ├─RPG::Weather(RGSS)     用 RPGXP 事件指令显示天气效果（雨，风，雪）的类。
│  ├─RPG::Map(Data)     地图的数据类。
│  ├─RPG::MapInfo(Data)    地图信息的数据类。
│  ├─RPG::Event(Data)    地图事件的数据类。
│  │  └─RPG::Event::Page(Data)    事件页的数据类。
│  │      ├─RPG::Event::Page::Condition(Data)    事件页“条件”的数据类。
│  │      └─RPG::Event::Page::Graphic(Data)    事件页“图像”的数据类。
│  ├─RPG::EventCommand(Data)    事件指令的数据类。
│  ├─RPG::MoveRoute(Data)    移动路线的数据类。
│  ├─RPG::MoveCommand(Data)    移动命令的数据类。
│  ├─RPG::Actor(Data)    角色的数据类。
│  ├─RPG::Class(Data)    职业的数据类。
│  │  └─RPG::Class::Learning(Data)    职业“学会的特技”的数据类。
│  ├─RPG::Skill(Data)    技能的数据类。
│  ├─RPG::Item(Data)    物品的数据类。
│  ├─RPG::Weapon(Data)    武器的数据类。
│  ├─RPG::Armor(Data)    防具的数据类。
│  ├─RPG::Enemy(Data)    敌人的数据类。
│  │  └─RPG::Enemy::Action(Data)    敌人“行为”的数据类。
│  ├─RPG::Troop(Data)    队伍的数据类。
│  │  ├─RPG::Troop::Member(Data)    队伍成员的数据类。
│  │  └─RPG::Troop::Page(Data)    战斗事件页的数据类。
│  │      └─RPG::Troop::Page::Condition(Data)    战斗事件页“条件”的数据类。
│  ├─RPG::State(Data)    状态的数据类。
│  ├─RPG::Animation(Data)    动画的数据类。
│  │  ├─RPG::Animation::Frame(Data)    动画“帧”的数据类。
│  │  └─RPG::Animation::Timing(Data)    动画“SE 与闪烁的时机”的数据类。
│  ├─RPG::Tileset(Data)    图块的数据类。
│  ├─RPG::CommonEvent(Data)    公共事件的数据类。
│  ├─RPG::System(Data)    系统的数据类。
│  │  └─RPG::System::Words(Data)    系统“用语”的数据类。
│  ├─RPG::AudioFile(Data)    声音文件的数据类。
├─Sprite(RGSS)    精灵的类。
│  ├─Sprite_Picture 　显示图片用的精灵。
│  ├─Sprite_Timer 　显示计时器用的精灵。
│  └─Arrow_Base 　在战斗画面使用的箭头光标的精灵。
│      ├─Arrow_Enemy 　选择敌人的箭头光标。
│      └─Arrow_Actor 　选择角色的箭头光标。
├─Table(RGSS)    多维数组的类。
├─Tilemap(RGSS)    管理元件地图的类。
├─Tone(RGSS)    色调的类。
├─Viewport(RGSS)    视口的类。
└─Window(RGSS)    游戏内窗口的类。
└─Window_Base 　游戏中全部窗口的基类。
├─Window_Selectable 　拥有光标的移动以及滚动功能的窗口类。
│  ├─Window_Command 　一般的命令选择行窗口。
│  ├─Window_MenuStatus 　显示菜单画面和同伴状态的窗口。
│  ├─Window_Item 　物品画面、战斗画面、显示浏览物品的窗口。
│  ├─Window_Skill 　特技画面、战斗画面、显示可以使用的特技浏览的窗口。
│  ├─Window_Target 　物品画面与特技画面的、使用对像角色选择窗口。
│  ├─Window_EquipRight 　装备画面、显示角色现在装备的物品的窗口。
│  ├─Window_EquipItem 　装备画面、显示浏览变更装备的候补物品的窗口。
│  ├─Window_ShopCommand 　商店画面、选择要做的事的窗口
│  ├─Window_ShopBuy 　商店画面、浏览显示可以购买的商品的窗口。
│  ├─Window_ShopSell 　商店画面、浏览显示可以卖掉的商品的窗口。
│  ├─Window_Message 　显示文章的信息窗口。
│  ├─Window_PartyCommand 　战斗画面、选择战斗与逃跑的窗口。
│  ├─Window_DebugLeft 　调试画面、指定开关及变量块的窗口。
│  └─Window_DebugRight 　调试画面、个别显示开关及变量的窗口。
├─Window_Help 　特技及物品的说明、角色的状态显示的窗口。
├─Window_Gold 　显示金钱的窗口。
├─Window_PlayTime 　菜单画面显示游戏时间的窗口。
├─Window_Steps 　菜单画面显示步数的窗口。
├─Window_SkillStatus 　显示特技画面、特技使用者的窗口。
├─Window_EquipLeft 　装备画面的、显示角色能力值变化的窗口。
├─Window_Status 　显示状态画面、完全规格的状态窗口。
├─Window_SaveFile 　显示存档以及读档画面、保存文件的窗口。
├─Window_ShopNumber 　商店画面、输入买卖数量的窗口。
├─Window_ShopStatus 　商店画面、显示物品所持数与角色装备的窗口。
├─Window_NameEdit 　名称输入画面、编辑名称的窗口。
├─Window_NameInput 　输入名称的画面、文字选择窗口。
├─Window_InputNumber 　信息窗口内部使用、输入数值的窗口。
├─Window_BattleStatus 　显示战斗画面同伴状态的窗口。
└─Window_BattleResult 　战斗结束时、显示获得的 EXP 及金钱的窗口。
【其中带(RGSS)的类指内部类，带(Data)的类指RMXP的数据类】