2017 ソフトウェア設計及び演習用の班Wiki

17gr08::animeモジュール

anime.h

# ifndef _ANIME_H
# define _ANIME_H

# include <stdlio.h>
# include <glib.h>
# include <glib/gprintf.h>
# include <gtk/gtk.h>
# include <gdk-pixbuf/gdk-pixbuf.h>
# include <gtk_lib.h>

# include <event.h>

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; // 動きを決める関数
GdkPixbufAnimationIter *iter; /* アニメーションのイテレータ */
} mySprite;

myAnimeArea *
my_anime_area_new(gint width, gint height, GdkPixmap *bg_pixmap, gint timeout);
// 幅,高さ,背景画像,時間間隔 (ms) を指定して,
// アニメーション領域を作る

void
my_anime_area_remove(myAnimeArea *area);
//アニメーション領域 area を消す

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

anime.c

スプライトを動かす、ドローイングエリアにスプライトを描く、ドローイングエリアの更新など、アニメーションの役割


最終更新日:2017/08/04 09:49:49