Project1

标题: 让我们弄更多的远景 [打印本页]

作者: Shure    时间: 2012-12-18 12:08
标题: 让我们弄更多的远景
相信有的人一定用过一个叫做“二重远景”的脚本吧。
但是,如果要加入更多的远景,应该怎么办呢?
嘿嘿,我有办法。这就开始吧。
我们就拿shironeko制作的rmva双远景地图脚本来做模板。
请注意一下改法(红色字体是本人更改过的):
[line]1[/line]

#==============================================================================
# ■ Spriteset_Map
#------------------------------------------------------------------------------
#  处理地图画面精灵和图块的类。本类在 Scene_Map 类的内部使用。
#==============================================================================

class Spriteset_Map

  #--------------------------------------------------------------------------
  # ● 生成远景图
  #--------------------------------------------------------------------------
  def create_parallax
    @parallax = Plane.new(@viewport1)
    @parallax.z = -100
    @parallax2 = Plane.new(@viewport1)
    @parallax2.z = 200
    @parallax3 = Plane.new(@viewport1)
    @parallax3.z = 200

  end

  #--------------------------------------------------------------------------
  # ● 释放
  #--------------------------------------------------------------------------
  def dispose
    dispose_tilemap
    dispose_parallax
    dispose_parallax2
    dispose_parallax3
    dispose_characters
    dispose_shadow
    dispose_weather
    dispose_pictures
    dispose_timer
    dispose_viewports
  end
  
  #--------------------------------------------------------------------------
  # ● 释放远景图2
  #--------------------------------------------------------------------------
  def dispose_parallax2
    @parallax2.bitmap.dispose if @parallax2.bitmap
    @parallax2.dispose
  end
  
  
  def dispose_parallax3
    @parallax3.bitmap.dispose if @parallax3.bitmap
    @parallax3.dispose
  end

  #--------------------------------------------------------------------------
  # ● 更新画面
  #--------------------------------------------------------------------------
  def update
    update_tileset
    update_tilemap
    update_parallax
    update_characters
    update_shadow
    update_weather
    update_pictures
    update_timer
    update_viewports
  end

  #--------------------------------------------------------------------------
  # ● 更新远景图
  #--------------------------------------------------------------------------
  def update_parallax
    if @parallax_name != $game_map.parallax_name
      @parallax_name = $game_map.parallax_name
      @parallax.bitmap.dispose if @parallax.bitmap
      @parallax.bitmap = Cache.parallax(@parallax_name)
    sign = @parallax_name[/^[\!\$]./]
        if sign != nil and sign.include?('$')
        @parallax2.bitmap.dispose if @parallax2.bitmap
        @parallax2.bitmap = Cache.parallax(@parallax_name +'_2')
        @parallax2.ox = $game_map.parallax_ox(@parallax.bitmap)
        @parallax2.oy = $game_map.parallax_oy(@parallax.bitmap)
        @parallax3.bitmap.dispose if @parallax3.bitmap
        @parallax3.bitmap = Cache.parallax(@parallax_name +'_3')
        @parallax3.ox = $game_map.parallax_ox(@parallax.bitmap)
        @parallax3.oy = $game_map.parallax_oy(@parallax.bitmap)

      end
      Graphics.frame_reset
    end
    sign = @parallax_name[/^[\!\$]./]
        if sign != nil and sign.include?('$')
        @parallax.ox = $game_map.display_x * 32
        @parallax.oy = $game_map.display_y * 32
        @parallax2.ox = $game_map.display_x * 48
        @parallax2.oy = $game_map.display_y * 48
        @parallax3.ox = $game_map.display_x * 64
        @parallax3.oy = $game_map.display_y * 64

        else
        @parallax.ox = $game_map.parallax_ox(@parallax.bitmap)
        @parallax.oy = $game_map.parallax_oy(@parallax.bitmap)
    end
  end
end

[line]1[/line]
好了,这样就完事儿了。
如果你还想再加进更多的远景,就可以按照上面的步骤做。
只不过,数值不要忘记更改,否则可能会报错。
恩……要谢的话,先感谢shironeko吧。




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