#============================================================================== # ○画面シェイクランダム化 Ver1.00 # for RGSS2 # 西瓜 / Space not far # http://muspell.raindrop.jp/ # 「画面のシェイク」が全方向ランダム化します。 #============================================================================== # ■仕様 # このスクリプトを導入すると # シェイクの「強さ」はランダム幅、「速さ」はシェイク位置の基本値になります。 # またイベントの「画面のシェイク」以外にも戦闘シーンなどでのシェイクの # 仕様も変わります。 class Game_Screen #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_reader :shake_y #-------------------------------------------------------------------------- # ● クリア #-------------------------------------------------------------------------- alias snf_051_clear clear def clear snf_051_clear @shake_y = 0 end #-------------------------------------------------------------------------- # ● シェイクの更新 #-------------------------------------------------------------------------- # 再定義 def update_shake if @shake_duration >= 1 or (@shake + @shake_y) != 0 # 残り時間が1以上かシェイクが1以上のとき shake = rand(@shake_power + 1) * @shake_speed shake_y = rand(@shake_power + 1) * @shake_speed # (0〜強さ)×速さ shake *= -1 if rand(2) == 0 shake_y *= -1 if rand(2) == 0 shake *= -1 if @shake == shake shake_y *= -1 if @shake_y == shake_y @shake = shake @shake_y = shake_y if @shake_duration >= 1 @shake_duration -= 1 else # 時間切れで画面位置を戻す @shake = 0 @shake_y = 0 end end end end class Spriteset_Map #-------------------------------------------------------------------------- # ● ビューポートの更新 #-------------------------------------------------------------------------- alias snf_052_update_viewports update_viewports def update_viewports snf_052_update_viewports @viewport1.oy = $game_map.screen.shake_y end end