Project1
标题:
请教怎么让脚本判断是在标题画面触发的还是在游戏中
[打印本页]
作者:
rmxp
时间:
2011-10-21 08:07
标题:
请教怎么让脚本判断是在标题画面触发的还是在游戏中
module Kernel
def exit(n)
$scene = Ink_Exit.new
end
end
复制代码
上面这个是防止点红叉关闭游戏的脚本
class Ink_Exit
def main
s1 = " 返回标题画面"
s2 = " 退出游戏"
s3 = " 博客零零"
@command_window = Window_Command.new(192, [s1, s2, s3])
@command_window.x = 320 - @command_window.width / 2
@command_window.y = 240 - @command_window.height / 2
# 执行过渡
Graphics.transition
# 主循环
loop do
# 刷新游戏画面
Graphics.update
# 刷新输入情报
Input.update
# 刷新画面
update
# 如果画面切换的话就中断循环
if $scene != self
break
end
end
# 准备过渡
Graphics.freeze
# 释放窗口
@command_window.dispose
# 如果在标题画面切换中的情况下
if $scene.is_a?(Scene_End)
# 淡入淡出画面
Graphics.transition
Graphics.freeze
end
end
def update
# 刷新命令窗口
@command_window.update
# 按下 B 键的情况下
if Input.trigger?(Input::B)
# 演奏取消 SE
$game_system.se_play($data_system.cancel_se)
# 切换-
$scene = Scene_Title.new
return
end
# 按下 C 键的场合下
if Input.trigger?(Input::C)
# 命令窗口光标位置分支
case @command_window.index
when 0 # 返回标题画面
command_to_title
when 1 # 退出
command_shutdown
when 2 # 博客零零
command_blog00
end
return
end
end
def command_to_title
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 淡入淡出 BGM、BGS、ME
Audio.bgm_fade(800)
Audio.bgs_fade(800)
Audio.me_fade(800)
# 切换到标题画面
$scene = Scene_Title.new
end
def command_shutdown
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 淡入淡出 BGM、BGS、ME
Audio.bgm_fade(800)
Audio.bgs_fade(800)
Audio.me_fade(800)
# 退出
$scene = nil
end
def command_blog00
$game_system.se_play($data_system.decision_se)
$bb_blog00 = Win32API.new('shell32.dll','ShellExecuteA',%w(p p p p p i),'i')
$bb_blog00.call(0, 'open', 'http://blog00.blog.163.com/',0, 0, 1)
end
end
复制代码
这个是我设定在点红叉之后弹出选项询问是否关闭游戏(后面那个博客零零用的是在66rpg里看到的插入链接)
不过有点问题。。就是在跳出这个菜单之后点Esc取消的话就会直接回到标题画面(如果设置成返回游戏中菜单的话,在标题画面调出这个选项再取消就会脚本错误。。)
请问用什么办法可以让这个脚本判断目前是在标题画面调出的还是在游戏中。谢谢。 dsu_plus_rewardpost_czw
作者:
各种压力的猫君
时间:
2011-10-21 08:26
本帖最后由 各种压力的猫君 于 2011-10-21 08:26 编辑
module Kernel
def exit(n)
$last_scene = $scene.clone
$scene = Ink_Exit.new
end
end
复制代码
第3行是我加的
$scene = $last_scene.clone
复制代码
然后这个替换哪句你懂吧
作者:
rmxp
时间:
2011-10-22 08:51
这样的话点红叉进入这个选项之后。。再点一下红叉 就会在这个选项里重新记录。。这样无论怎么返回都还在这个选项里了。。
作者:
fux2
时间:
2011-10-22 09:14
用loop开菜单不仅节省开销还适用于任何位置.
作者:
rmxp
时间:
2011-10-23 09:16
怎么做。。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1