// スプライト typedef struct { myAnimeArea *anime_area; // のっかっているアニメーション領域 GdkPixbuf *pixbuf; // スプライト用画像(ピクスバッファ) gint timeout; // スプライトのタイムアウト gint width; // 幅 gint height; // 高さ gint x, y; //座標 gint dx,dy; // ベクトル gint hp; // HP gint mode; //状態 gint lives; //残機 } mySprite; mySprite *player; mySprite *weapon; /* mode 0 通常 mode 1 きのこ mode 2 フラワー mode 3 通常&&スター mode 4 きのこ&&スター mode 5 フラワー&&スター */ //スプライトが動く領域 typedef struct { GtkWidget *drawing_area; //描画領域 GdkPixmap *bg_pixmap; //背景 gint width; gint height; gint timeout; GList *sprites; //スプライトのリスト } myAnimeArea; mySprite *my_player_new(myAnimeArea *area, gchar *path, gint timeout,gint x,gint y); static void my_sprite_draw(mySprite *sprite); static void my_anime_area_draw(myAnimeArea *area); static gint cb_player_timeout(gpointer data); static gint cb_anime_area_timeout(gpointer data); static gint cb_anime_area_expose(GtkWidget *widget, GdkEventExpose *event, gpointer data); static gint cb_anime_area_configure(GtkWidget *widget, GdkEventExpose *event, gpointer data); static void my_sprite_draw(mySprite *sprite); static void my_anime_area_draw(myAnimeArea *area); static gint cb_player_timeout(gpointer data); static void my_sprite_draw(mySprite *sprite); static void my_anime_area_draw(myAnimeArea *area); static gint cb_player_timeout(gpointer data); myAnimeArea *my_anime_area_new(gint width, gint height, GdkPixmap *back, gint timeout); void my_sprite_remove(mySprite *sprite); void *player_lives_first_set(mySprite *player);