137 lines
5.5 KiB
Ruby
137 lines
5.5 KiB
Ruby
#==============================================================================
|
|
# ■ Scene_Title
|
|
#------------------------------------------------------------------------------
|
|
# タイトル画面の処理を行うクラスです。
|
|
#==============================================================================
|
|
|
|
class Scene_Title < Scene_Base
|
|
#--------------------------------------------------------------------------
|
|
# ● 開始処理
|
|
#--------------------------------------------------------------------------
|
|
def start
|
|
super
|
|
SceneManager.clear
|
|
Graphics.freeze
|
|
create_background
|
|
create_foreground
|
|
create_command_window
|
|
play_title_music
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● トランジション速度の取得
|
|
#--------------------------------------------------------------------------
|
|
def transition_speed
|
|
return 20
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● 終了処理
|
|
#--------------------------------------------------------------------------
|
|
def terminate
|
|
super
|
|
SceneManager.snapshot_for_background
|
|
dispose_background
|
|
dispose_foreground
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● 背景の作成
|
|
#--------------------------------------------------------------------------
|
|
def create_background
|
|
@sprite1 = Sprite.new
|
|
@sprite1.bitmap = Cache.title1($data_system.title1_name)
|
|
@sprite2 = Sprite.new
|
|
@sprite2.bitmap = Cache.title2($data_system.title2_name)
|
|
center_sprite(@sprite1)
|
|
center_sprite(@sprite2)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● 前景の作成
|
|
#--------------------------------------------------------------------------
|
|
def create_foreground
|
|
@foreground_sprite = Sprite.new
|
|
@foreground_sprite.bitmap = Bitmap.new(Graphics.width, Graphics.height)
|
|
@foreground_sprite.z = 100
|
|
draw_game_title if $data_system.opt_draw_title
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● ゲームタイトルの描画
|
|
#--------------------------------------------------------------------------
|
|
def draw_game_title
|
|
@foreground_sprite.bitmap.font.size = 48
|
|
rect = Rect.new(0, 0, Graphics.width, Graphics.height / 2)
|
|
@foreground_sprite.bitmap.draw_text(rect, $data_system.game_title, 1)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● 背景の解放
|
|
#--------------------------------------------------------------------------
|
|
def dispose_background
|
|
@sprite1.bitmap.dispose
|
|
@sprite1.dispose
|
|
@sprite2.bitmap.dispose
|
|
@sprite2.dispose
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● 前景の解放
|
|
#--------------------------------------------------------------------------
|
|
def dispose_foreground
|
|
@foreground_sprite.bitmap.dispose
|
|
@foreground_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 create_command_window
|
|
@command_window = Window_TitleCommand.new
|
|
@command_window.set_handler(:new_game, method(:command_new_game))
|
|
@command_window.set_handler(:continue, method(:command_continue))
|
|
@command_window.set_handler(:shutdown, method(:command_shutdown))
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● コマンドウィンドウを閉じる
|
|
#--------------------------------------------------------------------------
|
|
def close_command_window
|
|
@command_window.close
|
|
update until @command_window.close?
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● コマンド[ニューゲーム]
|
|
#--------------------------------------------------------------------------
|
|
def command_new_game
|
|
DataManager.setup_new_game
|
|
close_command_window
|
|
fadeout_all
|
|
$game_map.autoplay
|
|
SceneManager.goto(Scene_Map)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● コマンド[コンティニュー]
|
|
#--------------------------------------------------------------------------
|
|
def command_continue
|
|
close_command_window
|
|
SceneManager.call(Scene_Load)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● コマンド[シャットダウン]
|
|
#--------------------------------------------------------------------------
|
|
def command_shutdown
|
|
close_command_window
|
|
fadeout_all
|
|
SceneManager.exit
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● タイトル画面の音楽演奏
|
|
#--------------------------------------------------------------------------
|
|
def play_title_music
|
|
$data_system.title_bgm.play
|
|
RPG::BGS.stop
|
|
RPG::ME.stop
|
|
end
|
|
end
|