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

15::gr05::anime.h2

キャラクターの画像とそれを表示するための構造体の宣言を行う。

# ifndef _ANIME_H
# define _ANIME_H

#define TRUE 1
#define FALSE 0
#define ALLY 0
#define ENEMY 1

# include <stdlib.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;
  gint s_timeout;            // スプライトのタイムアウト */
  GdkPixbuf *pixbuf;       // スプライト用画像(ピクスバッファ)
  gint width;              // 幅
  gint height;             // 高さ
  gint x, y, dx, dy;       // 座標・ベクトル
  GSourceFunc move;        // 動きを決める関数
 GdkPixbufAnimationIter *iter; /* アニメーションのイテレータ */
  int mob;      //キャラの種類
  int enemy;    //敵or味方 
  int hp;       //HP
  int cost;     //コスト
  int atk;      //攻撃力
  int atk_s;    //攻撃間隔(頻度)
  int atk_j;    //
  int range;    //射程
  int ex;       //存在判定
} 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 を消す


/*int find(mySprite x,mySprite y);  //射程内にキャラがいるかどうか(敵か味方か)の判別

void atk(int *x,int *y); //攻撃を実行する関数
mySprite fall(mySprite x);  //HP0の時に存在値をTRUE→FALSEにする関数*/

#endif


最終更新日:2015/08/10 10:19:17