!!プロジェクト名 *ゆうしゃのぼうけん(仮): 仮は取れませんでした。 ==(^q^)くおえうえーーーるえうおおお== !!プロジェクト説明 *横スクロール型アクションRPG。ですがロールプレイング要素は「プレイヤーが勇者」くらい。そしてスクロールは大変そうなので、横移動型に。 * !!ゲーム概要 *障害物を乗り越えながら、ステージ上に存在する敵を倒していく。 *敵の倒し方は、武器を持たない状態なのでジャンプのみとなる。 *ダメージを受けて体力がなくなると、スタート地点に戻される。 !!各モジュールとヘッダファイルについて *プレイヤー(担当:加藤) **キー入力の取得 **当たり判定:障害物、敵との接触。プレイヤー、敵、ステージ座標の数値を元にする。 **プレイヤーHP(体力値):敵との当たり判定から回数を計測。 **アクション制御:プレイヤーの動作は人間のキーボード操作によるもの。左右移動、ジャンプ(プレイヤー座標の変動) *敵(担当:加藤) **アクション制御:コンピュータによる自動移動。左右移動、ジャンプの繰り返し。 **敵HP(体力値):プレイヤーの下方部分(足パーツ)との当たり判定によって減少。 *アクション制御のヘッダファイル(action.h) **# include **# include **# include **#include **#include **#include **#define SPEED 5 **#define GRAVITY 1 **#define JUMPPOWER 15 **void my_player_move(mySprite *sprite); **void my_enemy_move(mySprite *sprite); **int chara_collision(mySprite *sprite); *プレイヤー情報のヘッダファイル(player_data.h) *gchar *chara_pics[] = {"../images/yusya.png","../images/enemy1.png"}; *typedef struct { ** GtkWidget *drawing_area; //描画領域 ** GdkPixmap *bg_pixmap; //背景 ** gint width; ** gint height; ** gint timeout; ** GList *sprites; //スプライトのリスト **} myAnimeArea; *typedef struct { ** myAnimeArea *anime_area; // のっかっているアニメーション領域 ** GdkPixbuf *pixbuf; // スプライト用画像(ピクスバッファ) ** gint timeout; // スプライトのタイムアウト ** gint width; // 幅 ** gint height; // 高さ ** gint x, y,dx,dy; // 座標 ** gint hp; ** gint mode; **} mySprite; *ヘッダファイル(key_event.h) **# include **# include **# include **#include **gboolean g_up,g_down,g_right,g_left; **void cb_key_press_event(GtkWidget *widget, GdkEventKey *event); **void cb_key_release_event(GtkWidget *widget, GdkEventKey *event); :以上。key event callback function **void set_cb_key_event(GtkWidget *window); :キーイベントのコールバック関数一括設定用関数 --- *ステージ構成(担当:小笠原) **各障害物の配置:テキストファイルに数値化したものを読み込み、当たり判定時の分岐条件とする。 **地面、足場:プレイヤーが上を移動できる。足場の場合正面、頭上にあると移動を阻害される。 *ステージ構成のヘッダファイル(stage.h) **#define ST_WIDTH 16  :ステージの横幅 **#define ST_HEIGHT 10 :ステージの縦幅 **int g_stage_hit[ST_HEIGHT][ST_WIDTH]; ***障害物用の当たり判定数値保存のための二次元配列。 **int g_stage_eve[ST_HEIGHT][ST_WIDTH]; ***イベント用当たり判定数値保存のための二次元配列。 **void stage_read(int file_num); ***引数:ステージ番号、テキストファイルで用意した各ステージの情報を読み込む。読み込まれた情報は、上記の二次元配列内へ保存される。 --- *イベント判定(担当:鈴木) **ゴールイベント:プレイヤー座標、ステージ上に設定したゴール座標によって発生。 **ゲームオーバー:プレイヤーHPがゼロになった場合発生。 *各グラフィック(ゆうしゃ、各障害物、ゲームオーバー画面等) *ゲームオーバーのヘッダファイル(gameover.h) **#include **#include **#include **#include *ゲーム終了時のヘッダファイル(gameend.h) **#include **#define GameClear 1 **#define GameOver 2 **void Event(int); --- *画面表示(担当:石井) **ステージ構造の表示:背景、地面、各障害物などを表示する。 **プレイヤーの表示:プレイヤーの画像をプレイヤー座標により表示。 **敵の表示:敵の画像を敵座標により表示。 !!動作スクリーンショット !!担当者の感想