ballのサンプルプログラムのものを使用 # ifndef _ANIME_H # define _ANIME_H # 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, dx, dy; // 座標・ベクトル 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 *); // スプライトの消去 #endif