Project1

标题: 切换地图后展示专有插图 [打印本页]

作者: YamazakiRyusa    时间: 2011-8-1 10:31
标题: 切换地图后展示专有插图
这篇脚本用于切换到特定地图时展示专有图片,体验过 DNF 的朋友们自然不会对这个效果陌生了:例如从赫顿玛尔切换到西海岸时会出现西海岸的专有插图。我的这份脚本灵感便是来源于此。
脚本内容是从 GameOver 这个特别场景参考的。由于是特别运用于我那部渣同人《进军地狱门》,所以很多细节,复制过去的朋友们不要忘记修改了。展示效果要自己试试才会知道,我懒得放范例工程了,没那份闲工夫去做。
下面这图是伊萨多拉村庄的插图。进入该地图的效果其实可以参考 Gameover 的场景。

废话不说,下面贴上脚本,拿去怎么用都行。商业目的的话记得事先和本人联系。
哎呀,忘记说了,在事件设置中,场所移动的命令后插入脚本 $scene = Scene_MapChange.new 即可。如果先调用脚本再场所移动,因为脚本读取的是当前地图,所以会造成小小的 BUG。本人正在考虑在 ryumap 变量那里 +1,不过那些地图就要顺序排列了,的确很麻烦。希望有谁能出面完善一下。
  1. #==============================================================================
  2. # ■ Scene_MapChange 1.0 Edition
  3. #------------------------------------------------------------------------------
  4. #  切换关键地图时显示专有图像
  5. #   作者 / Ryusa 参考 / 尽头 宇文隳
  6. #   [email protected]
  7. #==============================================================================

  8. class Scene_MapChange
  9.   #--------------------------------------------------------------------------
  10.   # ● 主处理
  11.   #--------------------------------------------------------------------------
  12.   def main
  13.     # 获取地图 ID,导入变量 ryumap
  14.     ryumap = $game_map.map_id
  15.     # 由地图 ID 决定生成图形
  16.     filename = ""
  17.     case ryumap
  18.       #when num # 范例
  19.         #filename = "path" # 范例
  20.       when 22  # 里奥拉多地区·里奥拉多镇通道
  21.         filename = "Scene_AreaLeoladol.png"
  22.       when 40  # 里奥拉多地区·麦基通道
  23.         filename = "Scene_AreaLeoladol.png"
  24.       when 47  # 里奥拉多地区·波布雷欧普莱通道
  25.         filename = "Scene_AreaLeoladol.png"
  26.       when 23  # 里奥拉多镇
  27.         filename = "Scene_AreaLeoladol.png"
  28.       when 148 # 巴多·帕鲁迪兹山洞
  29.         filename = "Scene_CaveBado.png"
  30.       when 114 # 地狱门
  31.         filename = "Scene_Desert.png"
  32.       when 119 # 地球救济中心
  33.         filename = "Scene_Earth.png"
  34.       when 97  # 伊尔·米古拉
  35.         filename = "Scene_ElMigolar.png"
  36.       when 51  # 莫氏塔
  37.         filename = "Scene_Mr.MowTower.png"
  38.       when 38  # 波布雷·欧普莱
  39.         filename = "Scene_NewFork.png"
  40.       when 75  # 奥多里
  41.         filename = "Scene_Outry.png"
  42.       when 109 # 桑塔
  43.         filename = "Scene_SantaPork.png"
  44.       when 136 # 地狱门西村
  45.         filename = "Scene_SunPork.png"
  46.       when 42  # 麦基村
  47.         filename = "Scene_TownNeki.png"
  48.       else # 未特别指定的地图显示通用图像
  49.         filename = "Scene_TownNeki.png"
  50.     end
  51.     #print filename # 校验文件名,测试用
  52.     @sprite = Sprite.new
  53.     if not filename == ""
  54.       @sprite.bitmap = RPG::Cache.picture(filename)
  55.       @sprite.z = 9999 # 图像叠放层次在最前
  56.     end
  57.     # 执行过渡
  58.     Graphics.transition(60) # 淡入图像的时间,单位为帧
  59.     # 主循环
  60.     loop do
  61.       # 刷新游戏画面
  62.       Graphics.update
  63.       # 刷新输入信息
  64.       Input.update
  65.       # 刷新画面情报
  66.       update
  67.       # 如果画面被切换的话就中断循环
  68.       if $scene != self
  69.         break
  70.       end
  71.     end
  72.     # 准备过渡
  73.     Graphics.freeze
  74.     # 释放图形
  75.     @sprite.bitmap.dispose
  76.     @sprite.dispose
  77.     # 执行过度
  78.     Graphics.transition(20)
  79.     # 准备过渡
  80.     Graphics.freeze
  81.   end
  82.   #--------------------------------------------------------------------------
  83.   # ● 刷新画面
  84.   #--------------------------------------------------------------------------
  85.   def update
  86.     @sprite.update
  87.     #@sprite.bitmap.update
  88.     # 按下 C 键的情况下
  89.     if Input.trigger?(Input::C)
  90.       # 切换到相应地图
  91.       $scene = Scene_Map.new
  92.     end
  93.   end
  94. end
复制代码




作者: 云破月    时间: 2011-8-1 10:41
听着很有诱惑力,就是感觉有点麻烦,期待LZ优化~~这个先抱走试试~~
作者: YamazakiRyusa    时间: 2011-8-1 10:43
看到回帖有动力了,准备传个整合的标题脚本
作者: 574656549    时间: 2011-8-2 18:44
提示: 作者被禁止或删除 内容自动屏蔽




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