71 lines
2.9 KiB
Ruby
71 lines
2.9 KiB
Ruby
#==============================================================================
|
|
# ■ Game_Screen
|
|
#------------------------------------------------------------------------------
|
|
# 色調変更やフラッシュなど、画面全体に関係する処理のデータを保持するクラスで
|
|
# す。このクラスは Game_Map クラス、Game_Troop クラスの内部で使用されます。
|
|
#==============================================================================
|
|
|
|
class Game_Screen
|
|
#--------------------------------------------------------------------------
|
|
# ● 公開インスタンス変数
|
|
#--------------------------------------------------------------------------
|
|
attr_accessor :endless_shake #
|
|
#--------------------------------------------------------------------------
|
|
# ● クリア
|
|
#--------------------------------------------------------------------------
|
|
alias endless_clear clear
|
|
def clear
|
|
endless_clear
|
|
@endless_shake = false
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● シェイクの開始
|
|
# power : 強さ
|
|
# speed : 速さ
|
|
#--------------------------------------------------------------------------
|
|
alias endless_start_shake start_shake
|
|
def start_shake(power, speed, duration)
|
|
endless_start_shake(power, speed, duration)
|
|
@endless_shake = false
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● シェイクの開始
|
|
# power : 強さ
|
|
# speed : 速さ
|
|
#--------------------------------------------------------------------------
|
|
def start_shake_endless(power, speed)
|
|
@shake_power = power
|
|
@shake_speed = speed
|
|
@endless_shake = true
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● シェイクの更新
|
|
#--------------------------------------------------------------------------
|
|
alias endless_update_shake update_shake
|
|
def update_shake
|
|
if @endless_shake
|
|
delta = (@shake_power * @shake_speed * @shake_direction) / 10.0
|
|
@shake += delta
|
|
@shake_direction = -1 if @shake > @shake_power * 2
|
|
@shake_direction = 1 if @shake < - @shake_power * 2
|
|
else
|
|
endless_update_shake
|
|
end
|
|
end
|
|
end
|
|
|
|
#==============================================================================
|
|
# ■ Game_Interpreter
|
|
#------------------------------------------------------------------------------
|
|
# イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、
|
|
# Game_Troop クラス、Game_Event クラスの内部で使用されます。
|
|
#==============================================================================
|
|
|
|
class Game_Interpreter
|
|
#--------------------------------------------------------------------------
|
|
# ●
|
|
#--------------------------------------------------------------------------
|
|
def endless_shake(power, speed)
|
|
screen.start_shake_endless(power, speed)
|
|
end
|
|
end
|