本帖最后由 guoxiaomi 于 2017-3-30 21:21 编辑
帖子里已经说的很清楚了,添加一个 远景平面Plane,然后在 update 里修改 ox、oy。Plane的相关代码在 Spriteset_Map 里面抄就行。
1. 修改 Spriteset_Battle 的 initialize 方法
在生成背景活动块后面,添加生成远景平面的代码,高度设置为 1 则显示在原来的背景前,-1 显示在原来的背景后,用这个方法可以制作部分静止部分移动的战斗背景:
# 生成战斗背景活动块 @battleback_sprite = Sprite.new(@viewport1) #--------------------------------------- @panorama = Plane.new(@viewport1) @panorama.z = 1 #---------------------------------------
# 生成战斗背景活动块
@battleback_sprite = Sprite.new(@viewport1)
#---------------------------------------
@panorama = Plane.new(@viewport1)
@panorama.z = 1
#---------------------------------------
2. 修改 Spriteset_Battle 的 dispose 方法
在释放背景活动块后面,添加释放远景平面的代码
# 释放战斗背景活动块 @battleback_sprite.dispose #--------------------------------------- @panorama.dispose #---------------------------------------
# 释放战斗背景活动块
@battleback_sprite.dispose
#---------------------------------------
@panorama.dispose
#---------------------------------------
3. 修改 Spriteset_Battle 的 update 方法
在更新背景活动块后面,添加更新远景平面的代码,然后添加一下移动方式。
# 战斗背景的文件名与现在情况有差异的情况下 if @battleback_name != $game_temp.battleback_name @battleback_name = $game_temp.battleback_name if @battleback_sprite.bitmap != nil @battleback_sprite.bitmap.dispose end @battleback_sprite.bitmap = RPG::Cache.battleback(@battleback_name) @battleback_sprite.src_rect.set(0, 0, 640, 320) end #------------------------------------------------------------- # 远景与现在的情况有差异发生的情况下 if @panorama_name != $game_temp.battleback_name # 释放远景图 if @panorama.bitmap != nil @panorama.bitmap.dispose @panorama.bitmap = nil end # 绘制远景图 if @battleback_name =~ /★远景/ @panorama_name = $game_temp.battleback_name @panorama.bitmap = RPG::Cache.panorama(@panorama_name, 0) Graphics.frame_reset end end # 远景图的移动 @panorama.ox += 1 #-------------------------------------------------------------
# 战斗背景的文件名与现在情况有差异的情况下
if @battleback_name != $game_temp.battleback_name
@battleback_name = $game_temp.battleback_name
if @battleback_sprite.bitmap != nil
@battleback_sprite.bitmap.dispose
end
@battleback_sprite.bitmap = RPG::Cache.battleback(@battleback_name)
@battleback_sprite.src_rect.set(0, 0, 640, 320)
end
#-------------------------------------------------------------
# 远景与现在的情况有差异发生的情况下
if @panorama_name != $game_temp.battleback_name
# 释放远景图
if @panorama.bitmap != nil
@panorama.bitmap.dispose
@panorama.bitmap = nil
end
# 绘制远景图
if @battleback_name =~ /★远景/
@panorama_name = $game_temp.battleback_name
@panorama.bitmap = RPG::Cache.panorama(@panorama_name, 0)
Graphics.frame_reset
end
end
# 远景图的移动
@panorama.ox += 1
#-------------------------------------------------------------
4. 如果战斗图名称包含‘★远景’,在文件夹 Panoramas 下添加一个和当前战斗背景图同名的文件,将作为远景显示。
5. 如果要添加多层远景,也是类似的方法~ |