118 lines
No EOL
3.5 KiB
Ruby
118 lines
No EOL
3.5 KiB
Ruby
#==============================================================================
|
||
# ■ 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 |