#==============================================================================
# ★ ロゴ画面表示 [RGSS3] ver.1.22 / by sonic
# [url]http://www.liberalcat.com/[/url]
#------------------------------------------------------------------------------
# ロゴを表示するスプラッシュ画面を描画するスクリプトです。
#==============================================================================
module CONF_LOGO
#------------------------------------------------------------------------------
# ☆ カスタマイズ項目
#------------------------------------------------------------------------------
# ロゴ表示機能のon/off(機能on:true 機能off:false)
USE_LOGO = true
# リセットした場合のロゴ表示on/off(表示on:true 表示off:false)
RESET_LOGO = false
# テスト時のロゴ表示on/off(表示on:true 表示off:false)
TEST_LOGO = true
# ボタンを押したときのロゴスキップ機能のon/off(機能on:true 機能off:false)
SKIP_LOGO = false
# ロゴとして表示する画像ファイル名
# (Graphics/System/にインポートした画像ファイル名を設定)
FILE_LOGO = "rogo"
# ロゴ表示中のSEまたMEファイル名
# (Audio/SE/またはAudio/ME/にインポートした音楽ファイル名を設定)
# ※SEに該当ファイルがなければMEをチェックし、どちらにも無ければ音無し
MU_LOGO = "GORPG"
# ロゴのフェードイン、フェードアウト速度(フレーム数)
FADE_SPEED_LOGO = 100
# ロゴ表示の長さ(フレーム数)
DISP_FLAME_LOGO = 300
#------------------------------------------------------------------------------
# ☆ 終了
#------------------------------------------------------------------------------
end
#==============================================================================
# ■ Scene_Logo
#------------------------------------------------------------------------------
# ロゴスプラッシュの処理を行うクラスです。
#==============================================================================
class Scene_Logo < Scene_Base
#------------------------------------------------------------------------------
# □ 設定値記述部
#------------------------------------------------------------------------------
#--------------------------------------------------------------------------
# ● 開始処理
#--------------------------------------------------------------------------
def start
super
SceneManager.clear
Graphics.freeze
create_logo
play_logo_music
end
#--------------------------------------------------------------------------
# ● 開始後処理
#--------------------------------------------------------------------------
def post_start
perform_transition
Input.update
@count = CONF_LOGO::DISP_FLAME_LOGO
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
alias :_orig_update :update
def update
_orig_update
SceneManager.goto(Scene_Title) if disp_logo?
end
#--------------------------------------------------------------------------
# ● ロゴ表示のフレームカウントと判定
#--------------------------------------------------------------------------
def disp_logo?
if Input.trigger?(:C)
true if CONF_LOGO::SKIP_LOGO
else
@count -= 1
true if @count <= 0
end
end
#--------------------------------------------------------------------------
# ● 終了前処理
#--------------------------------------------------------------------------
def pre_terminate
fadeout_all(transition_speed)
end
#--------------------------------------------------------------------------
# ● 終了処理
#--------------------------------------------------------------------------
def terminate
super
dispose_logo
end
#--------------------------------------------------------------------------
# ● フェード速度の取得
#--------------------------------------------------------------------------
def transition_speed
if Input.trigger?(:C)
return 0
else
return CONF_LOGO::FADE_SPEED_LOGO
end
end
#--------------------------------------------------------------------------
# ● ロゴの作成
#--------------------------------------------------------------------------
def create_logo
@sprite = Sprite.new
@sprite.bitmap = Cache.system(CONF_LOGO::FILE_LOGO)
center_sprite(@sprite)
end
#--------------------------------------------------------------------------
# ● ロゴの解放
#--------------------------------------------------------------------------
def dispose_logo
@sprite.bitmap.dispose
@sprite.dispose
end
#--------------------------------------------------------------------------
# ● スプライトを画面中央に移動
#--------------------------------------------------------------------------
def center_sprite(sprite)
sprite.ox = sprite.bitmap.width / 2
sprite.oy = sprite.bitmap.height / 2
sprite.x = Graphics.width / 2
sprite.y = Graphics.height / 2
end
#--------------------------------------------------------------------------
# ● ロゴ表示時の音
#--------------------------------------------------------------------------
def play_logo_music
@use_se = true
@use_me = false
logo_music = RPG::SE.new(CONF_LOGO::MU_LOGO)
logo_music.play rescue @use_se = false
unless @use_se
@use_me = true
logo_music = RPG::ME.new(CONF_LOGO::MU_LOGO)
logo_music.play rescue @use_me = false
end
end
#--------------------------------------------------------------------------
# ● サウンドとグラフィックのフェードアウト
#--------------------------------------------------------------------------
def fadeout_all(time)
RPG::ME.fade(time) if @use_me
Graphics.fadeout(time)
RPG::SE.stop if @use_se
RPG::ME.stop if @use_me
end
end
#==============================================================================
# ■ SceneManager
#------------------------------------------------------------------------------
# シーン遷移を管理するモジュールです。たとえばメインメニューからアイテム画面
# を呼び出し、また戻るというような階層構造を扱うことができます。
#==============================================================================
module SceneManager
@reset_flg = true
#--------------------------------------------------------------------------
# ● 最初のシーンクラスを取得
#--------------------------------------------------------------------------
def self.first_scene_class
if CONF_LOGO::USE_LOGO and @reset_flg
@reset_flg = false
# ロゴ表示を行う場合
if CONF_LOGO::TEST_LOGO
# テストでロゴ表示を行う場合
$BTEST ? Scene_Battle : Scene_Logo
else
# テスト時にロゴ表示を行わない場合
$BTEST ? Scene_Battle : ( $TEST ? Scene_Title : Scene_Logo )
end
else
# ロゴ表示を行わない場合
$BTEST ? Scene_Battle : Scene_Title
end
end
end