Project1

标题: 请教如何判断游戏在某个场景里? [打印本页]

作者: 文雅夕露    时间: 2018-2-19 12:05
标题: 请教如何判断游戏在某个场景里?
在给论坛提问的朋友修改一段脚本时发现的问题。
比如:在游戏结束界面写入读档功能时。
返回时的判断:
RUBY 代码复制
  1. if $scene.is_a?(Scene_Gameover)
  2.     $scene = Scene_Gameover.new
  3.   else
  4.     $scene = Scene_Title.new
  5.     end

但是没有效果。
再是,这段脚本:
RUBY 代码复制
  1. #让gameover赋值nil
  2.     $game_temp.gameover = nil

仅对战斗造成的游戏结束有效果。
但对事件和地图上的造成的游戏结束却没有用。
请问该怎么判断?

作者: mori13    时间: 2018-2-19 12:55
无论是地图上还是战斗中失败结束,都是一样的$secne转到Scene_Gameover.new,所以乃写的第一个判断就没有什么用。
不是$game_temp.gameover =false吗
作者: 文雅夕露    时间: 2018-2-19 13:06
mori13 发表于 2018-2-19 12:55
无论是地图上还是战斗中失败结束,都是一样的$secne转到Scene_Gameover.new,所以乃写的第一个判断就没有什 ...

那要怎么判断在Gameover内读档还是在标题中读档?
当然还要涉及到地图中的读档,菜单中的读档...
这个暂时不用判断。
$game_temp.gameover = nil 跟 false 效果是一致的。
作者: mori13    时间: 2018-2-19 13:19
文雅夕露 发表于 2018-2-19 13:06
那要怎么判断在Gameover内读档还是在标题中读档?
当然还要涉及到地图中的读档,菜单中的读档...
这个暂 ...


读档...读档不都是在Scene_Load里读档吗,在哪里读档有什么区别吗
效果一致就一致吧,对事件上造成的游戏结束有用的呀
作者: 芯☆淡茹水    时间: 2018-2-19 21:13
本帖最后由 芯☆淡茹水 于 2018-2-19 21:15 编辑
文雅夕露 发表于 2018-2-19 13:06
那要怎么判断在Gameover内读档还是在标题中读档?
当然还要涉及到地图中的读档,菜单中的读档...
这个暂 ...


随意在一个地方弄一个判断标志不就行了。
比如在 $game_temp 里加一个读写变量,标题进入时赋值 0;地图进入时赋值 1; 结束进入时赋值 2。
然后读档界面取消退出时,就根据这个变量判断退到哪个场景就行了。

或者直接在读档界面的脚本里,加一个自变量也是可以的。
作者: 文雅夕露    时间: 2018-2-19 22:32
芯☆淡茹水 发表于 2018-2-19 21:13
随意在一个地方弄一个判断标志不就行了。
比如在 $game_temp 里加一个读写变量,标题进入时赋值 0;地图 ...

不可以在其他场景写全局变量,然后进行判断吗?
我并不会用读写变量和自变量...
作者: RyanBern    时间: 2018-2-19 23:45
补充一下 5 楼芯大说的(此回复仅作为提示)。你可以看看默认系统怎么实现的【存档】功能。默认系统里进入存档里的方式有两个:
1. 从菜单中进入存档
2. 利用事件的【呼叫存档画面】进入

1 和 2  的区别就是在返回的时候,1 是直接返回菜单,2 是直接返回地图。这正是楼主想要的效果。所以可以研究一下这个代码。

关键点:Scene_Save, $game_temp.save_calling, Interpreter
作者: guoxiaomi    时间: 2018-2-27 19:29
Scene_Map 和 Scene_Battle 的 update 方法里有判断 $game_temp.gameover 的值然后进入 Scene_Gameover 的代码




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