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