Project1
标题:
关于游戏中读档的问题
[打印本页]
作者:
Seraglio_King
时间:
2011-2-19 18:04
标题:
关于游戏中读档的问题
接触RM的第4天,昨天居然通宵研究了……
几天下来,除了制作一些素材和建立了初步的地图外,对于事件触发也大致摸出了些心得
然后想着开始打造自己的系统
当我打开脚本器,里面各种脚本看得我头大……经过反复比较,对于某些脚本功能的用法也稍微有了些眉目
这时我想到了一个一直想有,可原始版本中不存在的功能:游戏进行中读档
经过我的观察,我发现Scene_Title里就是游戏开始画面的脚本
而其中command_continue就是控制读档的函数,做了对比,我发现$scene = Scene_File.new(true, false, false)
就是真正运行读档的语句,而check_continue只是检查是否有存档而已,并非必要的……
于是我做了一次嫁接,将该语句复制
之后在Scene_Menu下的update_command_selection这个控制选择菜单的函数中,自己添加了一个选择,s7 = "读取",并把它放在了S6之前
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s7, s6])
显示很正常,和我预计的一样,确实在游戏结束之前多了一个读档选项
之后又在update_command_selec中增加了这条复制的语句……
def update_command_selection
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Map.new
elsif Input.trigger?(Input::C)
if $game_party.members.size == 0 and @command_window.index < 4
Sound.play_buzzer
return
elsif $game_system.save_disabled and @command_window.index == 4
Sound.play_buzzer
return
end
Sound.play_decision
case @command_window.index
when 0 # 物品
$scene = Scene_Item.new
when 1,2,3 # 特技、装备、状态
start_actor_selection
when 4 # 存档
$scene = Scene_File.new(true, false, false)
when 5 # 读档
$scene = Scene_File.new(true, false, false)
when 6 # 游戏结束
$scene = Scene_End.new
end
end
end
好了,这样一来,确实能读档了,可问题也来了……
读档是没问题,可一旦进入读档画面中,此时想取消返回之前的画面,就会回到标题画面……
之后我也试过其他方法,但不奏效
我觉得这可能和Scene_File.new的设置有关,但我找不到哪里有关于Scene_File.new的声明函数
毕竟这条读档语句是复制过来的
各位大大谁能帮忙解答下?
感激不敬
另外如果能顺便解答一下有什么方便的确定坐标的方法就更好了,要确定游戏画面中的坐标点很难啊,总会有误差,很多时候要试很多次才行…… dsu_plus_rewardpost_czw
作者:
DeathKing
时间:
2011-2-19 18:10
急着出门,就留一个这个东西吧:
http://rpg.blue/home.php?mod=spa ... p;do=blog&id=48
作者:
Seraglio_King
时间:
2011-2-19 18:46
本帖最后由 Seraglio_King 于 2011-2-19 19:07 编辑
自己解决了……
原来还真有个叫Scene_File的脚本(汗,眼花没看到……)
里面的设定里有回到哪个画面……
$scene = Scene_File.new(false, false, false)
这三个开关用来记录是从那个画面进入存读档页面的,第一个是菜单存档,第二个是标题读档,第三个是事件存档
如果是菜单存档当然就是回菜单
而读档设定在一开始似乎就只设定了标题读档……所以读档只设定了标题
第三个事件存档是另外事件控制的,所以回地图
那么我的菜单读档似乎什么也不是了……
所以全变成false就可以了……那样自然就会回到之前的画面了……
而只要第一个和第三个是false,不管第二个是不是true,都会进入读档模式,而不会进行存档
可只要其中任意一个变成了true,那么就进入存档画面了……
总算搞明白了……
Seraglio_King于2011-2-19 19:04补充以下内容:
似乎还有个还原到哪个按钮的命令,怪不得我还原回去总是到存档那一栏,原来是没设置好,又调试了下
when 5 # 读档
if @continue_enabled
Sound.play_decision
$scene = Scene_File.new(false, 3, false)
else
Sound.play_buzzer
end
读档是我给它赋予了一个数值,而不是简单的开关……
#--------------------------------------------------------------------------
# ● 还原至原先的画面
#--------------------------------------------------------------------------
def return_scene
if @from_title == 3
$scene = Scene_Menu.new(5)
elsif @from_title
$scene = Scene_Title.new
elsif @from_event
$scene = Scene_Map.new
else
$scene = Scene_Menu.new(4)
end
end
这样还原时,我先检查是否完全等于那个数值,不然输入3,他一样判断开关是打开的……
哈哈~
读档系统完全搞定~
作者:
swt4399
时间:
2013-6-27 23:14
完全照你的的方法,检查了无数次,只能显示按了没用
作者:
swt4399
时间:
2013-6-27 23:27
when 5 # 读档
#if @continue_enabled
Sound.play_decision
$scene = Scene_File.new(false, 3, false) #我删掉了 if @continue_enabled
终于可以读档了
作者:
swt4399
时间:
2013-6-27 23:47
还原脚本也没用,取消就回标题
作者:
swt4399
时间:
2013-6-28 00:09
when 5 # 读档
Sound.play_decision
$scene = Scene_File.new(false, false, false) #(false, true, false)或 #(false, 3, false)加不加还原脚本都没用
测试了3个小时得出的
作者:
swt4399
时间:
2013-6-28 00:13
看了下时间好像只用了1个小时
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1