おそらく一番の難所であるバトルシーンについて解析していきます。
Scene_Battle
バトルになったら呼ばれるシーン。毎フレームupdateが呼ばれることで駆動する
最初にstart、post_startメソッドが呼ばれ、最期にpre_terminate、taeminateメソッドが呼ばれる。
初期化処理
■startメソッド
●create_spritesetメソッドでスプライトセットを作成
Spriteset_Battleをnewする。
中身は背景上下と敵画像、アクター画像(ダミー)、ピクチャとタイマー
●create_all_windowsでウィンドウを作成
メッセージウィンドウ、スクロールテキスト、ログ、ステータス、インフォ
パーティコマンド、アクターコマンド、ヘルプ、スキル、アイテム
アクター、エネミー
●バトルマネージャにウェイト用のメソッドを渡す
マネージャからはScene_Battleのメソッドは呼べないので、
オブジェクトとして渡しておく。中身はupdate_basic
■post_startメソッド
●perform_transitionでトランジション進行
●battle_startメソッド
○バトルマネージャのbattle_startメソッドを呼ぶ
システム、パーティ、敵のセットアップ
~が現れた!の表示
○process_eventメソッド
Game_Troop内部のインタプリタを進行させてイベントを消化
○start_party_command_selectionメソッド
ステータスウィンドウを開いて、バトルマネージャのinput_startメソッドを呼ぶ
戻り値がサプライズエンカウントのフラグで処理を振り分けてる。
通常ならばアクターウィンドウを閉じて、パーティウィンドウのセットアップ。
サプライズならば、パーティコマンドを無効にしてターンスタートさせる。
更新処理
■updateメソッド
●グラフィックのupdate
●入力のupdate
●全ウィンドウのupdate
●タイマーのupdate
●敵グループのupdate
●スプライトセットのupdate
●update_info_viewportメソッド
●update_message_openメソッド
<ここまでがupdate_basic>
ターン中ならば
●process_event
●process_action
●バトルマネージャの勝敗判定メソッドを呼ぶ
バトルマネージャのフェーズ
@phaseに格納されてる。
:init :turn :turn_end :aborting :input
最終更新:2012年03月07日 23:05