2014 ソフトウェア設計及び演習用の班Wiki
gr03:自機モジュール
- 現段階でのヘッダファイル
- gr03:ヘッダ(player_chara.h)
- キー入力から構造体の中身のデータを変更させるところまでは完成(試作品)
- 入力キーは四方向の移動(↑、↓、→、←)と攻撃(x)の5つ
- キーを押している間は構造体のデータが変更され続ける。
1月29日までの進行度
- 現段階でのヘッダファイル
- gr03:0129ヘッダ(player_chara.h)
- キー入力による移動・攻撃を行う関数、ダメージを受けた際のノックバック、無敵時間の関数、初期データ操作の関数はほぼ完成。
- エリア移動時のデータ操作関数、アイテム・武器に触った時の関数はある程度の形ができてきた。
2月16日までの進行度
- 現段階でのヘッダファイル
- gr03:0216ヘッダ(player_chara.h)
- 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