#==============================================================================
# ★RGSS2
# STR13_スポットライト v1.1
#
# ・プレイヤーの周囲を明るく見せる演出等に使用します。
# ・スポットライトの画像はSystemフォルダにインポートしてください。
# ・ライトの指定はイベントコマンドのスクリプト等で行います。
# ○最初からライトを表示させる場合は、並列処理でフォグ指定した後、
# イベントの一時消去を行うなどの方法を取ってください。
# ※マップ移動を行うと情報が初期化されます。
# ○コモンイベント等で指定パターンの管理する事をオススメします。
# ・説明文がSTR12とそっくりなのは仕様です
if false
# 以下をコマンドのスクリプト等に貼り付けてライト指定
l = $game_map
l.sl_name = "light01" # ファイル名
l.sl_blend_type = 1 # 合成方法
l.sl_opacity = 128 # 透明度
# ここまで
# 補足
# ・合成方法 0 = 通常 1 = 加算 2 = 減算
# ・透明度は0~255
end
#------------------------------------------------------------------------------
#
# 更新履歴
# ◇1.0→1.1
# スポットライトがすぐに反映されないバグを修正
#
#==============================================================================
# ■ Game_Map
#==============================================================================
class Game_Map
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :sl_name
attr_accessor :sl_blend_type
attr_accessor :sl_opacity
#--------------------------------------------------------------------------
# ★ エイリアス
#--------------------------------------------------------------------------
alias setup_str13 setup
def setup(map_id)
setup_str13(map_id)
@sl_name = ""
@sl_blend_type = 1
@sl_opacity = 128
end
end
#==============================================================================
# ■ Spriteset_Map
#==============================================================================
class Spriteset_Map
#--------------------------------------------------------------------------
# ● ライトの作成
#--------------------------------------------------------------------------
def create_s_light
@s_light = Sprite.new(@viewport2)
@s_light.z = 0
@s_light.visible = false
end
#--------------------------------------------------------------------------
# ● ライトの解放
#--------------------------------------------------------------------------
def dispose_s_light
@s_light.dispose
end
#--------------------------------------------------------------------------
# ● ライトの更新
#--------------------------------------------------------------------------
def update_s_light
if @s_light_name != $game_map.sl_name
@s_light_name = $game_map.sl_name
if @s_light.bitmap != nil
@s_light.bitmap.dispose
@s_light.bitmap = nil
end
if @s_light_name != ""
@s_light.bitmap = Cache.system(@s_light_name)
@s_light.visible = true
@s_light.ox = @s_light.bitmap.width / 2
@s_light.oy = @s_light.bitmap.height / 2
end
Graphics.frame_reset
end
@s_light.opacity = $game_map.sl_opacity
@s_light.blend_type = $game_map.sl_blend_type
@s_light.x = $game_player.screen_x
@s_light.y = $game_player.screen_y
end
#--------------------------------------------------------------------------
# ★ エイリアス
#--------------------------------------------------------------------------
alias create_parallax_str13 create_parallax
def create_parallax
create_parallax_str13
create_s_light
end
alias dispose_str13 dispose
def dispose
dispose_s_light
dispose_str13
end
alias update_str13 update
def update
update_str13
update_s_light
end
end