!!表示すべきもの *ゲーム画面 *自機キャラクター *敵キャラクター *弾 *回復アイテム *武器アイテム *スコア *タイム !!11月24日までの進行状況 *背景画像の表示及びその上にgif画像(1枚)の表示が可能。 まだ試してはいないが自機モジュールから座標を取得しキャラの表示もできる? !!main関数に呼び出してもらう関数 今のところdisply()を予定 12/24現在 引数はなし !!main_disp.h 8< #pragma once # include # include # include # include # include # include # include # include "enemy.h" # include "player_chara.h" # include "bullet.h" extern player_chara *Player; extern enemy *Enemy; extern bullet *Bullet; >8 !!main_char.h 8< # ifndef _MIGHTY_H_ # define _MIGHTY_H_ # include # include # include # include # include extern mySprite *m_char; extern player_chara *Player; mySprite *main_char_new(myAnimeArea *area); //自機キャラの生成 void main_char_move(mySprite *sprite); //自機キャラの座標値 >8 !!enemy_char.h 8< # include # include # include # include # include extern gint N_enemys; void enemys_init(myAnimeArea *area) mySprite *enemy_char_new(myAnimeArea *area); //敵キャラ生成 void enemy_char_move(mySprite *sprite); //敵キャラ座標値 >8 !!ball.h 8< # include # include # include extern gint N_balls; void balls_init(myAnimeArea *area, gint nballs); void ball_new(myAnimeArea *area); //弾生成 void ball_move(mySprite *sprite); //弾の座標値 void ball_remove(mySprite *self); // 弾の削除関数を呼ぶ関数 >8 !!anime.h 8< # include # include # include # include # include # include # include //スプライトが動く領域 typedef struct { GtkWidget *drawing_area; //描画領域 GdkPixmap *bg_pixmap; //背景 gint width; //画像横幅 gint height; //画像縦幅 gint timeout; GList *sprites; //スプライトのリスト GSourceFunc move; // 動きを決める関数 myEvent *event; } myAnimeArea; // スプライト typedef struct { myAnimeArea *anime_area; // のっかっているアニメーション領域 // gint timeout; // スプライトのタイムアウト */ GdkPixbuf *pixbuf; // スプライト用画像(ピクスバッファ) gint width; // 幅 gint height; // 高さ gint x, y; // 座標 gint vec; // キャラの向き gint length; // 敵や弾の配列数 gint ball_del; // 弾の消失 GSourceFunc move; // 動きを決める関数 } mySprite; //アニメーション領域 API myAnimeArea * my_anime_area_new(gint width, gint height, GdkPixmap *bg_pixmap, gint timeout); // 幅,高さ,背景画像,時間間隔 (ms) を指定して, // アニメーション領域を作る void my_anime_area_remove(myAnimeArea *area); //アニメーション領域 area を消す // スプライトAPI mySprite * my_sprite_new(myAnimeArea *area, gchar *path, gint timeout, GSourceFunc, GSourceFunc); //スプライトを作成する // area: 作成されるスプライトがのる,アニメーション領域 // path: 画像ファイルへのパス // timeout: スプライトを動かす時間間隔, // 描画はアニメーション領域の再描画時に行う void my_sprite_init(mySprite *sprite); // スプライトの位置とベクトルの初期値を決める関数 // 利用者が用意する void my_sprite_move(mySprite *sprite); // スプライトを移動する関数 // 利用者が用意する void my_sprite_remove(mySprite *); // スプライトの消去 >8