2014 ソフトウェア設計及び演習用の班Wiki
gr09::戦闘画面
-
もの
- 背景
- 敵キャラクタ画像
- 敵キャラクタ名ウインドウ
- 味方ステータスウインドウ
- コマンドウインドウ
- カーソル(画像)
- 既選択ウインドウ
- メッセージウインドウ
- アイテム選択ウインドウ
- 名前、コマンド、メッセージ、アイテムなどの文字列
-
操作
- 背景、敵キャラクタの表示
- 敵キャラクタ画像、ウインドウの表示
- 味方ステータスウインドウの表示
- キャラクタ名
- キャラクタの状態(いまのところ、正常 戦闘不能の2つ)
- 現在GPと最大GP
- GPバー
- メッセージウインドウの表示
- 決定キーを押すとメッセージ(文字列)を表示
- すべて表示したらコマンド画面へ
- コマンド画面と既選択ウインドウ、コマンド(たたかう、アイテムなど)、カーソルの表示
- 十字キーによる操作
- 十字キーの上下を押すことでカーソルを移動
- 決定キーでカーソルを合わせたコマンドを選択
- 既選択ウインドウに選択したコマンドを表示
- 選択した項目が「アイテム」だった場合、アイテムウインドウを表示
- アイテムウインドウは所持しているアイテム名を表示し、アイテム名の隣にカーソルを表示させる
- 十字キーによりカーソルを移動させ、決定キーで決定
- 使用する対象を選ぶアイテムだったら、ステータスウインドウの上にカーソルを表示し
- 使用したいキャラクタを決定キーで選択する
- パーティ人数分コマンドを選び終えたら、戦闘フェーズへ
- 戦闘フェーズ
-
内部で処理したものを次々とメッセージウインドウ上に表示していく
-
敵味方含めて素早さ順に行動するので、速いキャラクタから表示
- ○○の こうげき! △△は××ダメージ!
- ○○は □□を使った △△は××回復した
- ○○は ぼうぎょ している
-
敵味方含めて素早さ順に行動するので、速いキャラクタから表示
- 表示だけなので、操作はなし. 表示される戦闘ログと敵画像の点滅や味方のウインドウの点灯を見るだけ.
-
内部で処理したものを次々とメッセージウインドウ上に表示していく
- 戦闘終了後(敵GP0 or 味方すべてのGP0)、画面を切り替え
Battle.h #ifndef DEF_TEST_BATTLE_H #define DEF_TEST_BATTLE_H /*****************プロトタイプ宣言*********************/ // 敵のGPの初期化 void enemy_format( void ); // 味方のGPの初期化 void party_format( void ); // 選択コマンドの単体の初期化 void action_format( int order ); // 選択コマンドの初期化 void command_init( void ); // ウインドウカラーの決定 // キャラの番目, GPのパーセント void color_judge( int i , int G_percent ); // 背景の表示 // 引数:パーティ人数 void back_ground( void ); // 敵名ウインドウの表示 // 引数:パーティ人数,ダメージフラグ(ダメージを受けたか:1, 受けてないか:0) void enemy_window( int *damage_flag, int damage ); // ステータスウインドウの表示 // 引数:パーティ人数, ウインドウを上にずらす(0,1,2,etc), ダメージフラグ(0,1) void status_window( int PARTY, int order, int *damage_flag ); // コマンドウインドウの表示 // 引数:パーティ人数 void command_window( int PARTY ); // 既選択ウインドウの表示 // 引数:パーティ人数 void selected_window( int PARTY ); // アイテムウインドウの表示 // 引数:パーティ人数, 次表示するカーソルの座標パラメータ(x:0,1 y:0,1,2,3,...), ターゲットフラグ(0,1) void item_window( int order, int *cur_x, int *cur_y, int target_flag ); // GO!ウインドウの表示 void go_window( void ); // 戦闘エフェクトの表示 void battle_effect( int action_command, int *effect_flag ); // 決定ボタンを押したときの処理(オーダ(番)の管理) // 返り値:オーダ(番) // 引数:パーティ人数, オーダ, カーソル座標パラメータ, アイテムフラグ(0,1), ターゲットフラグ(0,1) int decision(int PARTY, int order, int cur_x, int cur_y, int item_flag, int target_flag ); // キャンセルボタンを押したときの処理(オーダ(番)の管理) 返り値:オーダ(番) // 引数:パーティ人数, オーダ, ターゲットフラグ int cancel(int PARTY, int order, int target_flag ); // 選択したアイテムの判別 // 戻り値:受け取った座標がさしているアイテムの種類kindを返す // 引数 :オーダ, カーソル座標パラメータ(これがアイテムを差す), ターゲットフラグ int item_judge( int order, int *cur_x, int *cur_y, int target_flag ); // カーソルの描画 // 引数:オーダ, カーソル座標パラメータ, アイテムフラグ, ターゲットフラグ void cursor(int order, int cur_x, int cur_y, int item_flag, int target_flag ); // 受け取った引数のコードのキャラクタの現在GPが0だったら0, そうでなかったら1を返す関数 // 引数:キャラクタコード int now_gp_judge( int code ); // 戦闘不能の判別とオーダ(番)の管理 // 返り値:全滅 -1, 一人目のみ戦闘不能 1, 一人目と二人目が戦闘不能 2, 敵GP0 -3, それ以外 0 // 引数: パーティ人数 int death_judge( int PARTY ); // ダメージ計算 // 引数: 第1:やられる人の番目(0,1,2,enemy) 第2:やる人の番目(0,1,2,enemy) 第3:持っているアイテムの番目orたたかう(-1) int damage_caliculation( int suffer , int cause, int item_code ); // 戦闘フェーズ(戦闘時の処理) // 引数:パーティ人数, オーダ, バトルフラグ, ダメージフラグ void battle_phase( int PARTY, int *order, int *battle_flag, int *damage_flag, int *effect_flag ); // 素早さ判定(素早い順に並べ替える同じ素早さの時はランダム) // 引数:パーティ人数. オーダ void speed_judge( int PARTY, int *order ); //**************** 変数宣言 *******************/ extern char *selected_command[3]; // 選択したコマンドの文字列 extern int action_command[3]; // 選択したコマンドのコード extern int battle_target[3]; // アイテム使用時の対象を格納する配列 extern int battle_Black; // 黒色の値を取得 extern int battle_White; // 白色の値を取得 extern int battle_Green; // 緑色の値を取得 extern int battle_Yellow; // 黄色の値を取得 extern int battle_Red; // 赤色の値を取得 extern int battle_Orange; // 橙色の値を取得 extern int window_color; // ウインドウカラーを白で初期化 extern int enemy_action_flag; // 敵の行動フラグ /******************** 構造体 ***********************/ // 座標構造体 struct COORDINATES { int x; int y; }; extern struct COORDINATES zahyo[]; // 戦闘のウインドウの座標 extern struct COORDINATES win_size[]; // ウインドウサイズの座標 #endif
最終更新日:2015/02/17 01:26:34