sacred-ritual-academy/Scripts/fps_.rb
2025-03-18 19:45:34 -05:00

118 lines
No EOL
3.5 KiB
Ruby
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#==============================================================================
# ■ DAIpage様スクリプト「fps変更」RGSS3化α Ver1.02 by 星潟
#------------------------------------------------------------------------------
# DAIpage様で配布されているRGSS2「fps変更」スクリプトを
# RPGツクールVXAceで使用可能にしつつ
# ゲーム中でFPSを3段階(30,60,120)で変更する機能を追加します。
# このスクリプト単体では正常に動作しません。
# DAIpage様で配布されている「fps変更」スクリプトが
# 前提スクリプトとして必要です。
#
# 以下、イベントコマンドのスクリプトで設定
# fps30にしたい時 fps_mode_change(0)
# fps60にしたい時 fps_mode_change(1)
# fps120にしたい時 fps_mode_change(2)
#
# Ver1.01 タイマーの仕様を修正
# Ver1.02 プレイ時間の仕様を修正
#==============================================================================
module FPSC
#デフォルトのFPSを設定します。
#(元スクリプトの設定は無視されます)
D_FPS = 60
#FPS120設定の時、ウェイトやフェードインを
#FPS60の速度で実行するか否かを設定します。
EXTRA = true
end
class << Graphics
def rate
data = $game_party != nil ? ($game_party.fps_rate) : 60
return 60.00 / data
end
alias wait_fps wait
def wait(duration)
return wait_fps(duration * rate) if rate < 1 && FPSC::EXTRA
return wait_fps(duration)
end
alias fadeout_fps fadeout
def fadeout(duration)
return fadeout_fps(duration * rate) if rate < 1 && FPSC::EXTRA
return fadeout_fps(duration)
end
alias fadein_fps fadein
def fadein(duration)
return fadein_fps(duration * rate) if rate < 1 && FPSC::EXTRA
return fadein_fps(duration)
end
alias transition_fps transition
def transition(duration=10, filename="", vague=40)
return transition_fps(duration * rate, filename, vague) if rate < 1 && FPSC::EXTRA
return transition_fps(duration, filename, vague)
end
end
class Scene_Map < Scene_Base
alias start_fps start
def start
Graphics.frame_rate = 60.0 / Graphics.rate
start_fps
end
end
class Scene_Title < Scene_Base
alias start_fps start
def start
$game_party.fps_rate = FPSC::D_FPS
Graphics.frame_rate = 60.0 / Graphics.rate
start_fps
end
end
class Game_System
alias playtime_fps playtime
def playtime
playtime_fps / Graphics.rate
end
end
class Game_Party < Game_Unit
attr_accessor :fps_rate
def fps_rate
@fps_rate = FPSC::D_FPS if @fps_rate == nil
return @fps_rate
end
end
class Game_Timer
alias sec_fps sec
def sec
sec_fps / Graphics.rate
end
end
class Game_Interpreter
def command_124
if @params[0] == 0 # 始動
$game_timer.start(@params[1] * Graphics.frame_rate * Graphics.rate)
else # 停止
$game_timer.stop
end
end
def fps_mode_change(n)
return if n < 0 or n > 4
case n
when 0
$game_party.fps_rate = 30
when 1
$game_party.fps_rate = 60
when 2
$game_party.fps_rate = 120
end
Graphics.frame_rate = 60.0 / Graphics.rate
end
alias game_data_operand_fps game_data_operand
def game_data_operand(type, param1, param2)
data = game_data_operand_fps(type, param1, param2)
data /= Graphics.rate if type == 7 && param1 == 4
return data
end
end