设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2156|回复: 3
打印 上一主题 下一主题

[已经解决] 请问判断当前Scene的语句是什么

[复制链接]

Lv1.梦旅人

星君

梦石
0
星屑
83
在线时间
2980 小时
注册时间
2011-10-9
帖子
2317

贵宾短篇七萝莉正太组冠军

跳转到指定楼层
1
发表于 2011-12-1 01:52:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1星屑
本帖最后由 月夜神音 于 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:标题已更改……不知道这样是不是比较容易理解

最佳答案

查看完整内容

对Scene_Base的主处理下手,新增一个全局变量$last_scene,然后用$last_scene.is_a?(Scene_XXX)来判断。 虽然我给的脚本可以直接插入到Scene_Base以下,但是你还是对照一下我注释的地方自己改进去吧 = =

点评

弄个NPC用脚本输入“p $scene.is_a?(Scene_Map)”试试 = = 注意大小写 我测试可用的来着啊  发表于 2011-12-1 02:23

Lv2.观梦者

(?????)

梦石
0
星屑
700
在线时间
1327 小时
注册时间
2011-7-18
帖子
3184

贵宾

2
发表于 2011-12-1 01:52:49 | 只看该作者
本帖最后由 各种压力的猫君 于 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以下,但是你还是对照一下我注释的地方自己改进去吧 = =

点评

成功了的说=w=~~ 前辈果然厉害><  发表于 2011-12-1 03:25
回复

使用道具 举报

Lv2.观梦者

(?????)

梦石
0
星屑
700
在线时间
1327 小时
注册时间
2011-7-18
帖子
3184

贵宾

3
发表于 2011-12-1 02:08:31 | 只看该作者
本帖最后由 各种压力的猫君 于 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
复制代码

点评

就是在菜单呼出Scene_Item时,返回菜单,在地图呼出Scene_Item时,返回地图,就这么简单TAT  发表于 2011-12-1 02:41
行不通,TAT  发表于 2011-12-1 02:15
回复

使用道具 举报

Lv1.梦旅人

星君

梦石
0
星屑
83
在线时间
2980 小时
注册时间
2011-10-9
帖子
2317

贵宾短篇七萝莉正太组冠军

4
 楼主| 发表于 2011-12-1 02:33:29 | 只看该作者
各种压力的猫君 发表于 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

点评

首先语法就不对啊 = = b elsif 后面要跟东西的…… 不然直接用else 不明白你想做什么效果啊 = = b  发表于 2011-12-1 02:38

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-29 11:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表