# # # マップ色相変更スクリプト by tonbi # # # イベントのスクリプトから、change_map_hue(hue)で呼び出します。 # (hue)の値は、色相設定のつまみの一番左が 0 右が 360 とします。 # 変数で指定したいときは、change_map_hue($game_variables[変数のID]) # と実行してください。 # # マップ移動時に、色相は自動的にリセットされますが、 # auto_hue_reset_off と実行することにより次のマップにも引継ぎ有り、 # auto_hue_reset_on と実行することによりリセット機能復帰とできます。 # # あと、この色相変更、けっこう重いので、並列処理でリアルタイムに書き換える # などは、あまり推奨しません。 # #============================================================================== # ■ いろんなクラスの変数スコープ変更 #============================================================================== class Scene_Map attr_accessor :spriteset #外部から変更できるようにする end class Spriteset_Map attr_accessor :tilemap #外部から変更できるようにする end #============================================================================== # ■ Game_System 改 #============================================================================== class Game_System attr_accessor :auto_hue_reset # マップ移動時に色相初期化するか? #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias initialize_tonbi2 initialize def initialize initialize_tonbi2 @auto_hue_reset = true end end #============================================================================== # ■ Game_Map 改 #============================================================================== class Game_Map attr_accessor :tile_hue # タイル色相 #-------------------------------------------------------------------------- # ● セットアップ(マップの移動など) #-------------------------------------------------------------------------- alias setup_tonbi2 setup def setup(map_id) # オート色相リセットフラグがtrueなら if $game_system.auto_hue_reset # 色相リセット @tile_hue = 0 end setup_tonbi2(map_id) end end #============================================================================== # ■ Spriteset_Map 改 #============================================================================== class Spriteset_Map attr_accessor :tile_hue # タイル色相 #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias initialize_tonbi2 initialize def initialize @tile_hue = 0 initialize_tonbi2 end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- alias update_tonbi2 update def update # タイルの色相が設定されていたなら if @tile_hue != $game_map.tile_hue @tilemap.tileset.hue_change($game_map.tile_hue) for i in 0..6 @tilemap.autotiles[i].hue_change($game_map.tile_hue) end @tile_hue = $game_map.tile_hue end update_tonbi2 end end #============================================================================== # ■ Interpreter(実際にイベントから呼び出す場合の処理) #============================================================================== class Interpreter #-------------------------------------------------------------------------- # ● タイルの色調変更する #-------------------------------------------------------------------------- def change_map_hue(hue) # シーンがマップなら、即座に色相変更 if $scene.is_a?(Scene_Map) and hue != $game_map.tile_hue # 色相変更 $scene.spriteset.tilemap.tileset.hue_change((hue-$game_map.tile_hue) % 360) for i in 0..6 $scene.spriteset.tilemap.autotiles[i].hue_change((hue-$game_map.tile_hue) % 360) end # 変更を記録 $game_map.tile_hue = hue % 360 $scene.spriteset.tile_hue = $game_map.tile_hue end return true end #-------------------------------------------------------------------------- # ● オートリセットオフ #-------------------------------------------------------------------------- def auto_hue_reset_off $game_system.auto_hue_reset =false return true end #-------------------------------------------------------------------------- # ● オートリセットオン #-------------------------------------------------------------------------- def auto_hue_reset_on $game_system.auto_hue_reset =true return true end end