2016 ソフトウェア設計及び演習用の班Wiki
gr06::キャラクターモジュール
各キャラクターの型、初期化関数等
role.h
#include <gtk.h> 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 追加) void talk(Role *,Role *,int); //main.hから移動し、インタフェース変更(7/28) void locked_door(Role *); //ドアをRoleとみなす(7/29 追加)
説明
- 羊、敵は各関数でRole型の構造体で初期値を入力してその都度更新していく。
- pi_control関数はキャラ移動時にこの関数を呼び出して、引数のRoleによってdi,pi_nameを変えて新しい画像を読み込む。第2引数には、Right,Up,Left,Downのいずれかの変えたい向きを入れる。
- Role型内のcoはキャラの移動時に1ずつ加えている。
pi_control関数内でこれを参照して2つの画像を交互に表示するためのもの。 - en_move,en_contact関数は2章で敵が動くときに使う関数。en_move関数の第2引数には動く向きを入れる。en_contact関数は羊と敵の目があったかを判断し、バトルイベントへいくもの。
- locked_door関数は1章でキーアイテムを取っていると2章で開けることができるドアを作成する。Role型とすることで敵と同じ当たり判定を利用できる。
- talk関数は2章で話しかけるためのもの。(隣に来てSpaceを押すと良い)
ドアや出口にも利用する。
最終更新日:2016/07/29 20:14:22