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

Project1

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

[RMVX发布] kissye的加载游戏改编——在标题画面之前加载游戏

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1934
在线时间
403 小时
注册时间
2015-8-30
帖子
395
跳转到指定楼层
1
发表于 2016-1-24 08:33:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 有丘直方 于 2016-1-27 17:00 编辑

原先这个加载游戏是由@kissye 使用渐变的方法做出的加载画面,在地图切换的时候使用kissye原帖地址戳进。我对ta所做的脚本进行了一些修改,并从Scene_Title中复制了一些加载游戏数据、对象等的内容到脚本中。可以在标题画面之前加载后,游戏的过程中不必多次加载了。当然也可以将两个脚本都放在脚本编辑器中,这样就既在标题画面之前放加载游戏的画面又在地图切换的时候放。另外战斗测试不会出现加载画面,直接开始战斗。
接下来放上原kissye脚本:

  1. class Scene_Map
  2.   X = 20#图片x坐标,注意要与渐变图一致
  3.   Y = 20#图片y坐标,注意要与渐变图一致
  4.   TIME = 120#loading时间
  5. =begin
  6.   说明:
  7.   system目录下
  8.   loading图片为背景图片
  9.   loading1图片为最初显示的"loading"字样(也可以换成其他的东西)
  10.   loading2图片为最终显示的"loading"字样(也可以换成其他的东西)
  11.   loadingtr图片为渐变图,只需要设置显示"loading"字样的地方就可以
  12.   渐变图说明(摘自帮助手册):
  13.   尺寸大小固定为 544 x 416 像素(或者更大,只要与你游戏分辨率相匹配即可),档案
  14. 必需为 256色彩的灰阶 PNG 格式。按照由低至高的灰度重新绘制画面。
  15. =end
  16.   #----------------------------------------------------------------------------
  17.   def update_transfer_player
  18.     return unless $game_player.transfer?
  19.     Graphics.freeze
  20.     transition = Sprite.new
  21.     transition.z = 9999
  22.     transition.bitmap = Cache.system("loading")
  23.     loading = Sprite.new
  24.     loading.x = X
  25.     loading.y = Y
  26.     loading.z = 9999
  27.     loading.bitmap = Cache.system("loading1")
  28.     Graphics.transition
  29.     Graphics.freeze
  30.     @spriteset.dispose              # 释放活动块组
  31.     $game_player.perform_transfer   # 执行场所移动
  32.     $game_map.autoplay              # 自动更改 BGM 和 BGS
  33.     $game_map.update
  34.     loading.bitmap.dispose
  35.     loading.bitmap = Cache.system("loading2")
  36.     @spriteset = Spriteset_Map.new  # 重新生成活动块组
  37.     Graphics.transition(TIME, "Graphics/System/loadingtr")
  38.     Graphics.freeze
  39.     loading.bitmap.dispose
  40.     loading.dispose
  41.     transition.bitmap.dispose
  42.     transition.dispose
  43.     Graphics.transition
  44.     Input.update
  45.   end
  46. end
复制代码
然后是经过修改的脚本:

  1. =begin
  2.   【kissye发布,有丘直方修改。使用和转载请保留此信息】
  3.   说明:
  4.   将脚本直接插入在Main前。
  5.   system目录下:
  6.   loading图片为背景图片。
  7.   loading1图片为最初显示的“loading”字样(也可以换成其他的东西)。
  8.   loading2图片为最终显示的“loading”字样(也可以换成其他的东西)。
  9.   loadingtr图片为渐变图,只需要设置显示“loading”字样的地方就可以。
  10.   渐变图说明(摘自帮助手册):
  11.   尺寸大小固定为 544 x 416 像素(或者更大,只要与你游戏分辨率相匹配即可),档案必需为256色彩的灰阶PNG格式。按照由低至高的灰度重新绘制画面。
  12. =end

  13. #==============================================================================
  14. # ■ Scene_Loading
  15. #------------------------------------------------------------------------------
  16. #  处理加载画面的类。
  17. #==============================================================================

  18. class Scene_Loading < Scene_Base
  19.   #--------------------------------------------------------------------------
  20.   # ● 常量
  21.   #--------------------------------------------------------------------------
  22.   X = 0                               #图片x坐标,注意要与渐变图一致
  23.   Y = 0                               #图片y坐标,注意要与渐变图一致
  24.   TIME = 240                          #loading时间
  25.   #--------------------------------------------------------------------------
  26.   # ● 主处理
  27.   #--------------------------------------------------------------------------
  28.   def main
  29.     if $BTEST                         # 战斗测试的情况下
  30.       battle_test                     # 开始战斗测试处理
  31.     else                              # 普通游戏的情况下
  32.       super                           # 原来的主处理
  33.     end
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # ● 开始处理
  37.   #--------------------------------------------------------------------------
  38.   def start
  39.     super
  40.   end
  41.   #--------------------------------------------------------------------------
  42.   # ● 结束处理
  43.   #--------------------------------------------------------------------------
  44.   def terminate
  45.     super
  46.   end
  47.   #--------------------------------------------------------------------------
  48.   # ● 更新画面
  49.   #--------------------------------------------------------------------------
  50.   def update
  51.     Graphics.freeze
  52.     transition = Sprite.new
  53.     transition.z = 9999
  54.     transition.bitmap = Cache.system("loading")
  55.     loading = Sprite.new
  56.     loading.x = X
  57.     loading.y = Y
  58.     loading.z = 9999
  59.     loading.bitmap = Cache.system("loading1")
  60.     Graphics.transition
  61.     Graphics.freeze
  62.     $scene = Scene_Title.new        # 执行场所移动
  63.     loading.bitmap.dispose
  64.     loading.bitmap = Cache.system("loading2")
  65.     Graphics.transition(TIME, "Graphics/System/loadingtr")
  66.     Graphics.freeze
  67.     loading.bitmap.dispose
  68.     loading.dispose
  69.     transition.bitmap.dispose
  70.     transition.dispose
  71.     Graphics.transition
  72.     Input.update
  73.   end
  74.   #--------------------------------------------------------------------------
  75.   # ● 载入数据库
  76.   #--------------------------------------------------------------------------
  77.   def load_database
  78.     $data_actors        = load_data("Data/Actors.rvdata")
  79.     $data_classes       = load_data("Data/Classes.rvdata")
  80.     $data_skills        = load_data("Data/Skills.rvdata")
  81.     $data_items         = load_data("Data/Items.rvdata")
  82.     $data_weapons       = load_data("Data/Weapons.rvdata")
  83.     $data_armors        = load_data("Data/Armors.rvdata")
  84.     $data_enemies       = load_data("Data/Enemies.rvdata")
  85.     $data_troops        = load_data("Data/Troops.rvdata")
  86.     $data_states        = load_data("Data/States.rvdata")
  87.     $data_animations    = load_data("Data/Animations.rvdata")
  88.     $data_common_events = load_data("Data/CommonEvents.rvdata")
  89.     $data_system        = load_data("Data/System.rvdata")
  90.     $data_areas         = load_data("Data/Areas.rvdata")
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ● 载入战斗测试数据库
  94.   #--------------------------------------------------------------------------
  95.   def load_bt_database
  96.     $data_actors        = load_data("Data/BT_Actors.rvdata")
  97.     $data_classes       = load_data("Data/BT_Classes.rvdata")
  98.     $data_skills        = load_data("Data/BT_Skills.rvdata")
  99.     $data_items         = load_data("Data/BT_Items.rvdata")
  100.     $data_weapons       = load_data("Data/BT_Weapons.rvdata")
  101.     $data_armors        = load_data("Data/BT_Armors.rvdata")
  102.     $data_enemies       = load_data("Data/BT_Enemies.rvdata")
  103.     $data_troops        = load_data("Data/BT_Troops.rvdata")
  104.     $data_states        = load_data("Data/BT_States.rvdata")
  105.     $data_animations    = load_data("Data/BT_Animations.rvdata")
  106.     $data_common_events = load_data("Data/BT_CommonEvents.rvdata")
  107.     $data_system        = load_data("Data/BT_System.rvdata")
  108.   end
  109.   #--------------------------------------------------------------------------
  110.   # ● 生成各种游戏对象
  111.   #--------------------------------------------------------------------------
  112.   def create_game_objects
  113.     $game_temp          = Game_Temp.new
  114.     $game_message       = Game_Message.new
  115.     $game_system        = Game_System.new
  116.     $game_switches      = Game_Switches.new
  117.     $game_variables     = Game_Variables.new
  118.     $game_self_switches = Game_SelfSwitches.new
  119.     $game_actors        = Game_Actors.new
  120.     $game_party         = Game_Party.new
  121.     $game_troop         = Game_Troop.new
  122.     $game_map           = Game_Map.new
  123.     $game_player        = Game_Player.new
  124.   end
  125.   #--------------------------------------------------------------------------
  126.   # ● 战斗测试
  127.   #--------------------------------------------------------------------------
  128.   def battle_test
  129.     load_bt_database                  # 载入战斗测试数据库
  130.     create_game_objects               # 生成个各种游戏对象
  131.     Graphics.frame_count = 0          # 初始化游戏时间
  132.     $game_party.setup_battle_test_members
  133.     $game_troop.setup($data_system.test_troop_id)
  134.     $game_troop.can_escape = true
  135.     $game_system.battle_bgm.play
  136.     snapshot_for_background
  137.     $scene = Scene_Battle.new
  138.   end
  139. end
复制代码
除此之外还需要注意在Main中第11行的
RGSS2 代码复制
  1. $scene = Scene_Title.new

改成
RGSS2 代码复制
  1. $scene = Scene_Loading.new

才能正常地显示出加载画面。
觉得这玩意这么好用……就不要范例了吧……
小仙女一枚~

Lv4.逐梦者

梦石
0
星屑
7921
在线时间
1049 小时
注册时间
2012-4-3
帖子
1271

开拓者

2
发表于 2016-1-24 19:49:03 手机端发表。 | 只看该作者
我觉得吧,加载这玩意,要是与预读取合壁,才能彰显它的闪耀之处。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1934
在线时间
403 小时
注册时间
2015-8-30
帖子
395
3
 楼主| 发表于 2016-1-24 20:10:24 | 只看该作者
Im剑侠客 发表于 2016-1-24 19:49
我觉得吧,加载这玩意,要是与预读取合壁,才能彰显它的闪耀之处。

实际上……RGSS的预读取……在1帧内就完成了……

点评

我指的是将要用到部分。当然效果明显与否,取决于读取的量。交互性强烈的游戏如果做到预读取的话,会避免很多读取小停顿……  发表于 2016-1-24 21:03
小仙女一枚~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-2 16:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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