// スプライト 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; //座標 gint dx,dy; // ベクトル gint hp; // HP gint mode; //状態 gint lives; //残機 } mySprite; mySprite *player; mySprite *weapon; などの構造体を定義していたが、new_lib.hへ移植した。 /* mode 0 通常 mode 1 きのこ mode 2 フラワー mode 3 通常&&スター mode 4 きのこ&&スター mode 5 フラワー&&スター mode 6 死亡 mode 7 ゲームオーバー mode 8 リスタート */ //スプライトが動く領域 static void my_sprites_draw(myAnimeArea *area);/* ドローイングエリアにスプライトを描く */ static void my_sprite_draw(mySprite *sprite);/* ドローイングエリアにスプライトを描く */ static void my_anime_area_draw(myAnimeArea *area);/* ドローイングエリアを更新 */ 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);/* configureイベントのコールバック */ void my_anime_set_bg_pixmap(myAnimeArea *self, GdkPixmap *back); static void my_anime_area_draw(myAnimeArea *area); void my_sprite_remove(mySprite *sprite); もっと多くの関数があったがチョウ君のプログラムと見比べて、移植した。