2014 ソフトウェア設計及び演習用の班Wiki

gr03:自機モジュール

  • キー入力から構造体の中身のデータを変更させるところまでは完成(試作品)
  • 入力キーは四方向の移動(↑、↓、→、←)と攻撃(x)の5つ
  • キーを押している間は構造体のデータが変更され続ける。

12月3日までの進行度

  • キーボード操作、初期データ操作、エリア移動時操作の関数の試作品の完成(※改善点多々有り)
  • 被ダメ操作の関数は鋭意作成中

1月29日までの進行度

  • キー入力による移動・攻撃を行う関数、ダメージを受けた際のノックバック、無敵時間の関数、初期データ操作の関数はほぼ完成。
  • エリア移動時のデータ操作関数、アイテム・武器に触った時の関数はある程度の形ができてきた。

2月16日までの進行度

  • PVP用の関数を作成。

2月17日までの進行度

  • スコアに関する関数を作成
  • 現在のヘッダファイル
#pragma once

typedef struct{
  int x; /* 自機の(現在の)x座標 */
  int y; /* 自機の(現在の)y座標 */ 
  int beforex; /* 自機の(1動作前の)x座標 */
  int beforey; /* 自機の(1動作前の)y座標 */
  int vector; /* 自機の現在の向き(1:左、2:下、3:右、4:上) */
  int weapon; /* 自機の現在の武器(1:ハンドガン、2:マシンガン、
                                   3:ショットガン)*/
  int status; /* 自機の状態(0:ゲームオーバー、1:標準、
                             2:ノックバック、3:無敵) */
  int cheat; /* 自機のチート状態(0:通常状態、1:チート状態) */
  int HP; /* 自機の現在のHP */
  int maxHP; /* 自機の最大HP(初期値:5) */
  double r; /* 自機の接触範囲 */
}player_chara;

/* ダメージ処理とノックバック処理を行う関数 */
void p_e_knockback(int i);
/* 1Pと敵との接触によるダメージ処理とノックバック処理を行う関数
 * 接触判定の部分で呼び出してもらい、
 * どの敵と接触したかをint型で受け取る。 
 */

void p_b_knockback(int i);
/* 1Pと弾との接触によるダメージ処理とノックバック処理を行う
 * 接触判定の部分で呼び出してもらい、
 * どの弾と接触したかをint型で受け取る。 
 */

/* 無敵時間処理を行う関数 */
gboolean p_nodamage_time(gpointer user_data);
//void p_nodamage_time(void);
/* g_timeout_add(50,(GSourceFunc) p_nodamage_time,NULL)
 * の形で呼び出す。
 * playerが一定時間無敵状態になったら、標準状態に戻す。
 * Scene_flagによって1Pの時と2Pの時の処理を分けている。
 */


/* キーボード操作 */
/* キーが押された時に呼ばれるコールバック関数 */
gint cb_key_press_event(GtkWidget *widget,GdkEventKey *event,
                        gpointer user_data);
/* g_signal_connect(G_OBJECT(window),"key_press_event",
 *                  G_CALLBACK(cb_key_press_event),NULL)
 * の形で呼び出す。
 * 操作キーが押された時に呼び出され、キーのフラグを立たせる
 * Scene_flagによって検出するキーを変化させている
 */

/* キーが離された時に呼ばれるコールバック関数 */
gint cb_key_release_event(GtkWidget *widget,GdkEventKey *event,
                          gpointer user_data);
/* g_signal_connect(G_OBJECT(window),"key_release_event",
 *                  G_CALLBACK(cb_key_release_event),NULL)
 * の形で呼び出す。 
 * 操作キーが離された時に呼び出され、キーのフラグを寝かせる
 * Scene_flagによって検出するキーを変化させている
 */


/* キーのフラグチェックの関数を一定時間(1/20秒)ごとに呼び出す関数 */
//gboolean key_flag_check(gpointer data);
void key_flag_check(void);
/* 
 * 移動と攻撃について、それぞれのキーが押されているときに処理を行う。
 */

/* プレイヤーがアイテムに接触した時に呼び出す関数 */
void player_use_item(int item_num);
/* int型でマップ上のどのアイテムと接触したかを受け取る。
 * プレイヤーのHPが最大でなければ、HPを1増やす。
 */

/* プレイヤーが武器に接触した時に呼び出す関数 */
void p_change_weapon(int wep_num);
/* int型でマップ上のどの武器と接触したかを受け取る。
 * プレイヤーの現在の武器と接触した武器の種類が異なるときは、
 * プレイヤーの武器を変更する。
 */


/* エリア移動時操作 */
void player_map_switching(int area_n);
/* int型で次のエリアナンバーを受け取る。
 * 現在のエリアナンバーと次のエリアナンバーを比較し、
 * それに応じたデータの設定を行う。
 */


/* 初期データ操作 */
void default_data_set(void);
/* default_data_set()の形で呼び出す。
 * playerのデータを初期化する。
 */

/* イベント時のプレイヤーの動きを操作する関数 */
gboolean event_player(gpointer data);


void players_score(int i);
/* 敵を回収した時にスコアを加算する関数
 * int型でどの敵を回収したかを受け取る。
 */

void clear_score(void);
/* ゲームクリア時に1度だけ呼ばれる関数
 * 残り秒数によるボーナススコアとクリアボーナススコアを加算する。
 */


/* PVP時の関数 */


void pvp_default_set(void);
/* PVP時の初期データ操作をする関数
 * ゲーム開始時に1度呼ばれれば良い。
 */

void sp_e_knockback(int i);
/* 敵と2Pの接触時のHP処理とノックバック処理を行う関数
 * どの敵とぶつかったかをint型で受け取る。
 */

/* 敵と1Pが接触した時の関数はvoid p_e_knockback(int i) */

void sp_b_knockback(int i);
/* 弾と2Pの接触時のHP処理とノックバック処理を行う関数
 * どの弾とぶつかったかをint型で受け取る。
 */

/* 弾と1Pの接触した時の関数はvoid p_b_knockback(int i) */

void p_p_knockback(void);
/* 1Pと2Pが接触した時にそれぞれのHP処理とノックバック処理を行う関数 */

void first_player_item(int i);
/* PVPの時に1Pの武器を変化させる関数
 * int型でどの敵を回収したのかを受け取り、
 * その敵の種類によって1Pの武器を変化させる。
 */

void second_player_item(int i);
/* PVPの時に2Pの武器を変化させる関数
 * int型でどの敵を回収したのかを受け取り、
 * その敵の種類によって2Pの武器を変化させる。
 */


void pvp_key_check(void);
/* PVPの時にそれぞのプレイヤーの移動や攻撃に関する処理を行う関数 */


最終更新日:2015/02/17 19:01:10