Project1

标题: 请问判断当前Scene的语句是什么 [打印本页]

作者: 皮卡星    时间: 2011-12-1 01:52
标题: 请问判断当前Scene的语句是什么
本帖最后由 月夜神音 于 2011-12-1 09:31 编辑

简单的说就是类似Scene_File的判断
@from_title这些
但是其他的场景好像不能判断的说0 0
难道要建立很多一样的脚本……然后每个脚本的返回场景不同么= =||
这样很麻烦喵……
于是只能判断了TAT
但是其他的场景不能判断啊TAT
好吧……貌似说的有点复杂了= =||
就是这样:
if (这里是场景判断的语句)
   $scene = Scene_Menu.new
   elsif
     $scene = Scene_Map.new
end
求方法{:nm_2:}

PS:标题已更改……不知道这样是不是比较容易理解
作者: 各种压力的猫君    时间: 2011-12-1 01:52
本帖最后由 各种压力的猫君 于 2011-12-1 03:06 编辑
皮卡星 发表于 2011-12-1 02:33
结果是“true”
但是……那个,大概比方
    if $scene.is_a?(Scene_Menu)
  1. class Scene_Base
  2.   #--------------------------------------------------------------------------
  3.   # ● 主处理
  4.   #--------------------------------------------------------------------------
  5.   def main
  6.     start                         # 开始处理
  7.     perform_transition            # 执行渐变
  8.     post_start                    # 开始后处理
  9.     Input.update                  # 更新输入讯息
  10.     loop do
  11.       Graphics.update             # 更新游戏画面
  12.       Input.update                # 更新输入讯息
  13.       update                      # 更新画面
  14.       #==========================
  15.       # 如果场景发生变化的话
  16.       if $scene != self
  17.         # 记录上一个场景
  18.         $last_scene = self.clone
  19.         # 中断循环
  20.         break
  21.       end
  22.       #==========================
  23.     end
  24.     Graphics.update
  25.     pre_terminate                 # 结束前处理
  26.     Graphics.freeze               # 准备渐变
  27.     terminate                     # 结束处理
  28.   end
  29. end
复制代码
对Scene_Base的主处理下手,新增一个全局变量$last_scene,然后用$last_scene.is_a?(Scene_XXX)来判断。
虽然我给的脚本可以直接插入到Scene_Base以下,但是你还是对照一下我注释的地方自己改进去吧 = =
作者: 各种压力的猫君    时间: 2011-12-1 02:08
本帖最后由 各种压力的猫君 于 2011-12-1 02:10 编辑

直接用 if $scene == Scene_XXX.new 不行么 = =
  1. if $scene.is_a?(Scene_XXX)
  2.   blablabla...
  3. else
  4.   blablabla...
  5. end
复制代码

作者: 皮卡星    时间: 2011-12-1 02:33
各种压力的猫君 发表于 2011-12-1 02:08
直接用 if $scene == Scene_XXX.new 不行么 = =

结果是“true”
但是……那个,大概比方
    if $scene.is_a?(Scene_Menu)
      $scene = Scene_Menu.new
    elsif
      $scene = Scene_Map.new
    end
因为这是Menu里面的返回场景
所以只能让返回场景为“menu”
那么如果是menu的话就只能返回menu了……
所以说没有办法执行else的场合啊TAT





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