directory search
Ruby用户指南 3、开始 4、简单的例子 5、字符串 6、正则表达式 7、数组 8、回到那些简单的例子 9、流程控制 10、迭代器 11、面向对象思维 12、方法 13、类 14、继承 15、重载方法 16、访问控制 17、单态方法 18、模块 19、过程对象 20、变量 21、全局变量 22、实变量 23、局部变量 24、类常量 25、异常处理:rescue 26、异常处理:ensure 27、存取器 28、对象的初始化 29、杂项 RGSS入门教程 1、什么是RGSS 2、开始:最简单的脚本 3、数据类型:数字 4、数据类型:常量与变量 5、数据类型:字符串 6、控制语句:条件分歧语句 7、控制语句:循环 8、函数 9、对象与类 10、显示图片 11、数组 12、哈希表(关联数组) 13、类 14、数据库 15、游戏对象 16、精灵的管理 17、窗口的管理 18、活动指令 19、场景类 Programming Ruby的翻译 Programming Ruby: The Pragmatic Programmer's Guide 前言 Roadmap Ruby.new 类,对象和变量 容器Containers,块Blocks和迭代Iterators 标准类型 深入方法 表达式Expressions 异常,捕捉和抛出(已经开始,by jellen) 模块 基本输入输出 线程和进程 当遭遇挫折 Ruby和它的世界 Ruby和Web开发 Ruby Tk Ruby 和微软的 Windows 扩展Ruby Ruby语言 (by jellen) 类和对象 (by jellen) Ruby安全 反射Reflection 内建类和方法 标准库 OO设计 网络和Web库 Windows支持 内嵌文档 交互式Ruby Shell 支持 Ruby参考手册 Ruby首页 卷首语 Ruby的启动 环境变量 对象 执行 结束时的相关处理 线程 安全模型 正则表达式 字句构造 程序 变量和常数 字面值 操作符表达式 控制结构 方法调用 类/方法的定义 内部函数 内部变量 内部常数 内部类/模块/异常类 附加库 Ruby变更记录 ruby 1.6 特性 ruby 1.7 特性 Ruby术语集 Ruby的运行平台 pack模板字符串 sprintf格式 Marshal格式 Ruby FAQ Ruby的陷阱
characters

    无论地图画面还是菜单画面等等,担任各画面的处理的是场面类。 
把所有的场面类列个表,类名和脚本名一一对应。还有,Scene_File 类作为 Scene_Save 和 Scene_Load 的超级类而定义的这个列表没包含。



类           内容 
Scene_Title  标题画面 
Scene_Map  地图画面 
Scene_Menu  菜单画面 
Scene_Item  条款画面 
Scene_Skill  技能画面 
Scene_Equip  装备画面 
Scene_Status  状态画面 
Scene_Save  储存画面 
Scene_Load  载入画面 
Scene_End 游戏结束画面 
Scene_Battle Battle 战斗画面 
Scene_Shop 商店画面 
Scene_Name  名字输入画面 
Scene_Gameover  游戏结束画面 
Scene_Debug  排除故障程序画面 




场面类的实例由全局变量$scene保存。这个变量能调出main方法,是继续游戏的构造所在。典型的场面类的骨架如下:

  class Scene_Xxxx
   def main
    Graphics.transition
    loop do
     Graphics.update
     Input.update
     update
     if $scene != self
      break
     end
    end
    Graphics.freeze
   end
   def update
   end
  end

Graphics.freeze 和 Graphics.transition参看Graphics类的详细资料。

if $scene != self 就是如果全局变量 $scene 指向的对象不是自己的话,Input.update 是更新游戏 pad和键盘的输入信息的方法。参照 Input 类的详细资料。



我们曾经在前面提到过,RGSS 的游戏的最基本的事情就是下面的行为:

loop do
Graphics.update
end

场面类的 main 方法是从这里变复杂来的,那么看看是怎样变复杂的吧:

Main 脚本是最后的脚本,以上的脚本基本都是全部类的定义,所以实际上,真正脚本的开始实行是从这里,Main 脚本除去注释 , 仅有成为 11 行。

begin
Graphics.freeze
$scene = Scene_Title.new
while $scene != nil
$scene.main
end
Graphics.transition(20)
rescue Errno::ENOENT
filename = $!.message.sub("No such file or directory - ", "")
print(" 文件夹 #{ filename} 没被发现。")
end

所谓 begin .. rescue ..end 是异常处理的语句。

Graphics.freeze 和 Graphics.transition 刚才也已提出了。

剩下的 4 行,担当标题画面的处理的 Scene_Title 类的实例,生成全局变量 $scene 。
版权声明:RUBY文档中心的所有文章标明[原创]的均为本站作品,版权属RUBY中文化计划,若转载请注明;标明[翻译]的其外文版权归原作者,译文版权属RUBY中文化计划;标明[转贴]的,若原作者感到侵犯了他的著作权,那么请及时跟主持人联系,我们会尽快更正。  
Previous article: Next article: