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

Project1

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

[已经解决] 关于回到标题画面

[复制链接]

Lv1.梦旅人

梦石
0
星屑
143
在线时间
25 小时
注册时间
2010-8-18
帖子
10
跳转到指定楼层
1
发表于 2010-11-10 01:56:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
我的游戏工程一开始是设置队伍中无人,在一张地图上一张张显示图片后移动到另一张地图也就是标题画面上,但是在菜单中选择退出游戏-回到标题画面后会回到第一张地图,也就是图片再重新显示一遍之后才能出现标题画面,怎样才可以直接回到第二张地图上?

Lv1.梦旅人

梦石
0
星屑
55
在线时间
142 小时
注册时间
2009-5-15
帖子
220
2
发表于 2010-11-10 03:37:03 | 只看该作者
你跳过了默认的标题画面?
个人推断你是自己修改过或者插入脚本,以实现跳过默认标题画面的效果,然后用事件自制标题。

事件中/菜单中的“回到标题”基本上就是重置游戏(reset),所以才会重新回到第一张地图那里...

袋鼠的解决方案:

首先去 脚本编辑器 --〉Scene_End --〉84行
  1.     $scene = Scene_Title.new
复制代码
换成
  1.     $scene = Scene_Title2.new
复制代码
然后插入以下这个脚本...
  1. #==============================================================================
  2. # ■ Scene_Title
  3. #------------------------------------------------------------------------------
  4. #  处理标题画面的类。
  5. #==============================================================================

  6. class Scene_Title2
  7.   #--------------------------------------------------------------------------
  8.   # ● 住处理
  9.   #--------------------------------------------------------------------------
  10.   def main
  11.     # 战斗测试的情况下
  12.     if $BTEST
  13.       battle_test
  14.       return
  15.     end
  16.     # 载入数据库
  17.     $data_actors        = load_data("Data/Actors.rxdata")
  18.     $data_classes       = load_data("Data/Classes.rxdata")
  19.     $data_skills        = load_data("Data/Skills.rxdata")
  20.     $data_items         = load_data("Data/Items.rxdata")
  21.     $data_weapons       = load_data("Data/Weapons.rxdata")
  22.     $data_armors        = load_data("Data/Armors.rxdata")
  23.     $data_enemies       = load_data("Data/Enemies.rxdata")
  24.     $data_troops        = load_data("Data/Troops.rxdata")
  25.     $data_states        = load_data("Data/States.rxdata")
  26.     $data_animations    = load_data("Data/Animations.rxdata")
  27.     $data_tilesets      = load_data("Data/Tilesets.rxdata")
  28.     $data_common_events = load_data("Data/CommonEvents.rxdata")
  29.     $data_system        = load_data("Data/System.rxdata")
  30.     # 生成系统对像
  31.     $game_system = Game_System.new

  32. #=begin
  33.     # 判定继续的有效性
  34.     # 存档文件一个也不存在的时候也调查
  35.     # 有効为 @continue_enabled 为 true、無効为 false
  36. $continue_enabled = false
  37.     for i in 0..3
  38.       if FileTest.exist?("Save#{i+1}.rxdata")
  39.         $continue_enabled = true
  40.       end
  41.     end
  42. #=end

  43.     # 停止演奏 ME、BGS
  44.     Audio.me_stop
  45.     Audio.bgs_stop
  46.     # 执行过渡
  47.     Graphics.transition
  48.     # 主循环
  49.     loop do
  50.       # 刷新游戏画面
  51.       Graphics.update
  52.       # 刷新输入信息
  53.       Input.update
  54.       # 刷新画面
  55.       update
  56.       # 如果画面被切换就中断循环
  57.       if $scene != self
  58.         break
  59.       end
  60.     end
  61.     # 装备过渡
  62.     Graphics.freeze
  63.   end
  64.   #--------------------------------------------------------------------------
  65.   # ● 刷新画面
  66.   #--------------------------------------------------------------------------
  67.   def update
  68.         command_new_game
  69.   end
  70.   #--------------------------------------------------------------------------
  71.   # ● 命令 : 新游戏
  72.   #--------------------------------------------------------------------------
  73.   def command_new_game
  74.     # 停止 BGM
  75.     Audio.bgm_stop
  76.     # 重置测量游戏时间用的画面计数器
  77.     Graphics.frame_count = 0
  78.     # 生成各种游戏对像
  79.     $game_temp          = Game_Temp.new
  80.     $game_system        = Game_System.new
  81.     $game_switches      = Game_Switches.new
  82.     $game_variables     = Game_Variables.new
  83.     $game_self_switches = Game_SelfSwitches.new
  84.     $game_screen        = Game_Screen.new
  85.     $game_actors        = Game_Actors.new
  86.     $game_party         = Game_Party.new
  87.     $game_troop         = Game_Troop.new
  88.     $game_map           = Game_Map.new
  89.     $game_player        = Game_Player.new
  90.     # 设置初期同伴位置
  91.     $game_party.setup_starting_members
  92.     # 设置初期位置的地图
  93.     $game_map.setup(2)#转移的地图ID
  94.     # 主角向初期位置移动
  95.     $game_player.moveto(5, 6)#转移的地图X, 转移的地图Y
  96.     # 刷新主角
  97.     $game_player.refresh
  98.     # 执行地图设置的 BGM 与 BGS 的自动切换
  99.     $game_map.autoplay
  100.     # 刷新地图 (执行并行事件)
  101.     $game_map.update
  102.     # 切换地图画面
  103.     $scene = Scene_Map.new
  104.   end
  105. =begin
  106.   #--------------------------------------------------------------------------
  107.   # ● 命令 : 继续
  108.   #--------------------------------------------------------------------------
  109.   def command_continue
  110.     # 继续无效的情况下
  111.     unless @continue_enabled
  112.       # 演奏无效 SE
  113.       $game_system.se_play($data_system.buzzer_se)
  114.       return
  115.     end
  116.     # 演奏确定 SE
  117.     $game_system.se_play($data_system.decision_se)
  118.     # 切换到读档画面
  119.     $scene = Scene_Load.new
  120.   end
  121.   #--------------------------------------------------------------------------
  122.   # ● 命令 : 退出
  123.   #--------------------------------------------------------------------------
  124.   def command_shutdown
  125.     # 演奏确定 SE
  126.     $game_system.se_play($data_system.decision_se)
  127.     # BGM、BGS、ME 的淡入淡出
  128.     Audio.bgm_fade(800)
  129.     Audio.bgs_fade(800)
  130.     Audio.me_fade(800)
  131.     # 退出
  132.     $scene = nil
  133.   end
  134. =end
  135.   #--------------------------------------------------------------------------
  136.   # ● 战斗测试
  137.   #--------------------------------------------------------------------------
  138.   def battle_test
  139.     # 载入数据库 (战斗测试用)
  140.     $data_actors        = load_data("Data/BT_Actors.rxdata")
  141.     $data_classes       = load_data("Data/BT_Classes.rxdata")
  142.     $data_skills        = load_data("Data/BT_Skills.rxdata")
  143.     $data_items         = load_data("Data/BT_Items.rxdata")
  144.     $data_weapons       = load_data("Data/BT_Weapons.rxdata")
  145.     $data_armors        = load_data("Data/BT_Armors.rxdata")
  146.     $data_enemies       = load_data("Data/BT_Enemies.rxdata")
  147.     $data_troops        = load_data("Data/BT_Troops.rxdata")
  148.     $data_states        = load_data("Data/BT_States.rxdata")
  149.     $data_animations    = load_data("Data/BT_Animations.rxdata")
  150.     $data_tilesets      = load_data("Data/BT_Tilesets.rxdata")
  151.     $data_common_events = load_data("Data/BT_CommonEvents.rxdata")
  152.     $data_system        = load_data("Data/BT_System.rxdata")
  153.     # 重置测量游戏时间用的画面计数器
  154.     Graphics.frame_count = 0
  155.     # 生成各种游戏对像
  156.     $game_temp          = Game_Temp.new
  157.     $game_system        = Game_System.new
  158.     $game_switches      = Game_Switches.new
  159.     $game_variables     = Game_Variables.new
  160.     $game_self_switches = Game_SelfSwitches.new
  161.     $game_screen        = Game_Screen.new
  162.     $game_actors        = Game_Actors.new
  163.     $game_party         = Game_Party.new
  164.     $game_troop         = Game_Troop.new
  165.     $game_map           = Game_Map.new
  166.     $game_player        = Game_Player.new
  167.     # 设置战斗测试用同伴
  168.     $game_party.setup_battle_test_members
  169.     # 设置队伍 ID、可以逃走标志、战斗背景
  170.     $game_temp.battle_troop_id = $data_system.test_troop_id
  171.     $game_temp.battle_can_escape = true
  172.     $game_map.battleback_name = $data_system.battleback_name
  173.     # 演奏战斗开始 BGM
  174.     $game_system.se_play($data_system.battle_start_se)
  175.     # 演奏战斗 BGM
  176.     $game_system.bgm_play($game_system.battle_bgm)
  177.     # 切换到战斗画面
  178.     $scene = Scene_Battle.new
  179.   end
  180. end
复制代码
在第96和98行编辑你的第二张地图的id和角色坐标就行了...


原理:
返回标题的指令本来是去默认的Scene_Title然后执行Scene_Title里面的脚本,
改了后就去Scene_Title2。
Scene_Title2基本上除了名字(第7行),以及进入游戏的位置(96、98行),其余的都是一样的。
所以,在游戏一开始的时候,就会直接执行Scene_Title的内容,然后进入游戏。
然而在游戏中,经过菜单的返回标题指令,就会去到scene_title2,并且进入这个脚本里面指定的地点。

我重新新建一个Scene_Title2是为了方便初始所有的数据,如果不需要特地初始数据的话,你可以直接把Scene_End的那一句改成
  1. $game_map.setup(转移的地图ID)
  2. $game_player.moveto(转移的地图X,转移的地图Y)
  3. $game_player.refresh   
  4. $game_map.autoplay     
  5. $game_map.update
  6. $scene = Scene_Map.new
复制代码

点评

谢谢!问题解决了!非常感谢!!  发表于 2010-11-10 23:19

评分

参与人数 1星屑 +332 收起 理由
fux2 + 332 认可答案+脸熟

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

无节操

梦石
0
星屑
607
在线时间
795 小时
注册时间
2009-2-6
帖子
3939

开拓者贵宾

3
发表于 2010-11-10 03:41:27 | 只看该作者
回到标题对应的脚本直接改成场景移动到对应标题的地图里.
Brandnew day, Brandnew Life
                              实在  中
暂为素材区版主,版其  琢磨
应援一下~
RPG制作大师授权素材推广计划
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

4
发表于 2010-11-10 08:23:45 | 只看该作者
本帖最后由 精灵使者 于 2010-11-10 08:25 编辑

将以前不需要返回的做成一张地图,然后在main里面把Scene_title改为Scene_logo,复制一个跳过标题脚本改为Scene_logo指向这个LOGO地图,另外一个标题脚本作为Scene_title指向标题画面的地图。
这样,就可以了(Scene_logo地图上的事件的最后一行:返回标题画面)
经精灵测试有效
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 15:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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