Project1

标题: 战斗背景滚动请教 [打印本页]

作者: soulsaga    时间: 2017-3-13 10:16
标题: 战斗背景滚动请教
本帖最后由 soulsaga 于 2017-3-13 10:28 编辑

如何才能滚动战斗背景?

https://rpg.blue/thread-292254-1-1.html?_dsign=825b9521
这帖子的方法看不懂啊..
作者: guoxiaomi    时间: 2017-3-13 11:53
本帖最后由 guoxiaomi 于 2017-3-30 21:21 编辑

帖子里已经说的很清楚了,添加一个 远景平面Plane,然后在 update 里修改 ox、oy。Plane的相关代码在 Spriteset_Map 里面抄就行。

1. 修改 Spriteset_Battle 的 initialize 方法
在生成背景活动块后面,添加生成远景平面的代码,高度设置为 1 则显示在原来的背景前,-1 显示在原来的背景后,用这个方法可以制作部分静止部分移动的战斗背景:
RUBY 代码复制
  1. # 生成战斗背景活动块
  2.     @battleback_sprite = Sprite.new(@viewport1)
  3.     #---------------------------------------
  4.     @panorama = Plane.new(@viewport1)
  5.     @panorama.z = 1
  6.     #---------------------------------------


2. 修改 Spriteset_Battle 的 dispose 方法
在释放背景活动块后面,添加释放远景平面的代码
RUBY 代码复制
  1. # 释放战斗背景活动块
  2.     @battleback_sprite.dispose
  3.     #---------------------------------------
  4.     @panorama.dispose
  5.     #---------------------------------------


3. 修改 Spriteset_Battle 的 update 方法
在更新背景活动块后面,添加更新远景平面的代码,然后添加一下移动方式。
RUBY 代码复制
  1. # 战斗背景的文件名与现在情况有差异的情况下
  2.     if @battleback_name != $game_temp.battleback_name
  3.       @battleback_name = $game_temp.battleback_name
  4.       if @battleback_sprite.bitmap != nil
  5.         @battleback_sprite.bitmap.dispose
  6.       end
  7.       @battleback_sprite.bitmap = RPG::Cache.battleback(@battleback_name)
  8.       @battleback_sprite.src_rect.set(0, 0, 640, 320)
  9.     end
  10.         #-------------------------------------------------------------
  11.     # 远景与现在的情况有差异发生的情况下
  12.     if @panorama_name != $game_temp.battleback_name
  13.       # 释放远景图
  14.       if @panorama.bitmap != nil
  15.         @panorama.bitmap.dispose
  16.         @panorama.bitmap = nil
  17.       end
  18.       # 绘制远景图
  19.       if @battleback_name =~ /★远景/        
  20.         @panorama_name = $game_temp.battleback_name        
  21.         @panorama.bitmap = RPG::Cache.panorama(@panorama_name, 0)
  22.         Graphics.frame_reset
  23.       end
  24.     end
  25.     # 远景图的移动
  26.     @panorama.ox += 1
  27.     #-------------------------------------------------------------


4. 如果战斗图名称包含‘★远景’,在文件夹 Panoramas 下添加一个和当前战斗背景图同名的文件,将作为远景显示。

5. 如果要添加多层远景,也是类似的方法~
作者: soulsaga    时间: 2017-3-14 20:27
guoxiaomi 发表于 2017-3-13 11:53
帖子里已经说的很清楚了,添加一个 远景平面Plane,然后在 update 里修改 ox、oy。Plane的相关代码在 Sprit ...

那个..你发的@Panorama = Plane.new(@viewport1
用了大写P..




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