各キャラクターの型、初期化関数等>> !!role.h
#include!!説明 *羊、敵は各関数でRole型の構造体で初期値を入力してその都度更新していく。 *pi_control関数はキャラ移動時にこの関数を呼び出して、引数のRoleによってdi,pi_nameを変えて新しい画像を読み込む。第2引数には、Right,Up,Left,Downのいずれかの変えたい向きを入れる。 *Role型内のcoはキャラの移動時に1ずつ加えている。((br)) pi_control関数内でこれを参照して2つの画像を交互に表示するためのもの。 *en_move,en_contact関数は2章で敵が動くときに使う関数。en_move関数の第2引数には動く向きを入れる。en_contact関数は羊と敵の目があったかを判断し、バトルイベントへいくもの。 !!追記 *当初はgif画像を表示する予定だったが、以下の理由で断念した。(余裕があれば修正) ++先生のアニメーションのサンプルを見たがよくわからなかった。 ++とりあえずpngなどでプログラムを書いていたはずだが、gifでやることをすっかり忘れていたので今からgif用に直すには大幅な書き換えが必要そうだった。 *sheepからenemy_boss3までの関数のインタフェースを変更しました。((br)) (再度、初期化しても2章以降でスタミナを継続するため)((br)) これに伴い、色んな所を直さなくてはならなかったためもっと早く直しておくべきだったと後悔。(7/15) [[前ページに戻る|gr06::モジュール]]struct _Role { int ty; // キャラの種類 int st; // キャラのスタミナ等 int di; // キャラの方向 char *pi_name; // キャラの画像名(6/20 追加) GdkPixbuf *picture; // キャラの画像(6/22 修正) int s_width; // キャラの幅 int s_height; // キャラの高さ int co; // 画像の表示制御用カウント (6/22 追加) int num; // 同タイプのキャラが複数の時の判別用 (7/21 追加) int x; // x座標 int y; // y座標 int w1; // 武器1 int w2; // 武器2 }; typedef struct _Role Role; void pi_control(Role *, int); void sheep(Role *); void enemy_slow(Role *); void enemy_fast(Role *); void enemy_bicycle(Role *); void enemy_boss2(Role *); // chapter2のボス void enemy_boss3(Role *); // chapter3のボス //ここから下はchapter2.c void en_move(Role *,int); (7/7 追加) void en_contact(Role *,Role *,int); (7/7 追加)