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

gr06::イベントモジュール

2章で敵とぶつかった時の戦闘

chapter2

void battle_back(void);
void destroy();
void battle_event(Role *en);
void battle(Role *en);
void battle_count1();
void battle_count2();
void battle_count3();
void battle_count4();
void battle1();
void battle2();
void battle3();
void battle4();
void st_count0(gpointer user_data, int damage);
void en_st_count(gpointer user_data, int damage, Role *en);
void sh_damage(int attack_to_sh);
void en_damage(int attack_to_en);
void battle_event(Role *en);
void battle_story(Role *en);
void boss_story(Role *en);
void weapon_story();

説明

  • battle関数でwindow下のアイテム、距離、スタミナを消しバトルと表示。Role型で敵の情報を渡し、battle_event関数へ。
  • battle_event関数で敵の画像と羊の画像を表示。逃げるを押したときにwindowを閉じるため、destroy関数へ。
  • destroy関数ではバトルのwindowを消す。
  • battle_back関数ではbattle関数で表示したwindowを消した後、元のwindowでバトルと表示した部分を消し、アイテム、距離、スタミナを表示。
  • battle1,2,3,4,関数ではbattle_event関数で押されたボタンによって、それぞれ呼び出される。g_timeout_addを使い、1秒ごとにbattle_count関数を呼び出す。randomint関数で敵のバトルでの選択をランダムで選ばれるようにした。変数battle_flagで戦闘中の表示が出ている間は呼び出されないようにした。
  • battle_count1,2,3,4関数では敵との戦闘中の表示、sh_damage,en_damage関数を呼び出し、スタミナを減らす。こうげき力を上げることもこの関数で。
  • st_count0関数ではバトルの時に羊のスタミナを表示させる関数。引数にint型で数字を入れると、その分のスタミナが減る。
  • en_st_count関数ではバトルの時の敵のスタミナを表示。
  • sh_damage関数ではst_count0を呼び出しスタミナを減らした後、スタミナが0になった時、変数st0を10にする。これによって、battle_count関数の最後でリザルトが呼べるようになる。
  • en_damage関数ではen_st_count関数を呼び出し敵のスタミナを減らす。switch文を使いそれぞれの敵について、スタミナを減らす。
  • battle_story関数ではバトルwindowを作り、敵との戦闘前の会話を表示する。会話が終わった後、battle_event関数が呼ばれる。
  • battle関数ではg_timeout_addを使い、battle_storyを呼び出す。
  • boss_story関数ではボスと戦う前のボスとの会話を表示する。会話が終わるとbattle_event関数が呼ばれる。
  • weapon_story関数では武器をくれる人との会話を表示。2回目話しかけると別の会話が表示されるようにした。会話終了後windowを消す。

前ページに戻る


最終更新日:2016/08/04 15:44:57