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

15::gr05::発表

プロジェクト名

 Tower of Defence

プロジェクト説明

  湧き上がる敵を仲間を召喚して倒し、
 敵の領地を攻めて、自分の領地を守るゲーム。
 自分の領地の体力が無くなる前に敵の領地を体力を0にすれば勝利。

フローチャート

Screenshot_from_2015-06-12 13:52:58.png

モジュール分けとヘッダファイル

モジュール分け

  • 画面 担当:古川勝
    1. タイトル画面
    2. ステージ選択画面
    3. クリアー画面
    4. ゲームオーバー画面
  • 素材 担当:稲垣貴大
    1. 背景
    2. キャラクターの画像
  • キャラクターの登場 担当:横田裕紀
    1. 召喚ボタンの作成、コストゲージの作成
    2. 召喚→コスト消費→キャラ登場→キャラクター移動
      コスト消費は最終的に使わないことにし、味方は同じキャラを複数出せないことにした。
  • キャラクターの攻撃 担当:成田恭平
    1. 相手のHPの値を減少させる(攻撃の間隔、減らせる値はキャラによって違う)
    2. HPが0になったら倒れる

動作スクリーンショット

ゲーム画面

sukusyo3.jpg

勝利画面

sukusyo4.jpg

敗北画面

sukusyo5.jpg

総評

  • 1秒経つごとにloop関数内で各キャラの体力を減らす処理をしようと思ったが、最初loop関数が各キャラのtimeout30ごとに呼び出すmove関数内にあったため処理がおかしくなり大変だった。 そこで、体力を減らすloop関数をmove関数の外に出して独立させた。キャラが出現したときにloop関数を動かしておいてグローバル変数の値の変化によって体力を問題なく減らすことに成功した。
  • 当たり判定の関数であるcollision関数を敵味方で呼び出すと何故かエラーが出てしまい動かなかった。そこで、味方だけcollision関数を呼び出すようにして、味方が敵を判別して止まったら敵も同じく止まるようにした。
  • 3対3の仕様なので、キャラ1対について7通りの体力の減り方があり、プログラムが非常に大変だった。
  • 各キーボードを押して味方が出現するようにしているが、同じキャラが2体以上出現しないようにした。敵キャラについては、消えたら変則的にまた出現するようにした。これはivent.c内の、敵味方がそれぞれ存在しているかどうかの変数の値によって出現させる関数を読むようにして処理した。
  • 結局gif画像を読み込むことが出来なかった。キャラが止まった時にエラーが出たので、move関数内では動きを止め、animation関数内ではずっと画像の再描画をしてるので、そこでエラーが出ていると思う。

個個人の感想

  • 古川 勝 「活動記録」
    • 今期の演習のなかで最も苦労した。
      授業時間外に何時間かけたか分からないくらい頑張った。
      この演習を通して確実に実力がついたと思う。
      最初から高望みをしないで、段階をふんでプロジェクトを進めていくことの大事さを思い知った。
  • 稲垣 貴大 「活動記録」
    • 今回プログラムは担当せず背景やキャラの絵を担当して、はじめはキャラの画像をgif形式のアニメーションで
      作っていたが、統合の段階でうまく行くことができず、動かない絵となった。
      それを踏まえ今回の反省点は絵を描くことだけではなく、gifアニメーションや画像へのボタンの配置などの
      絵に関する表示のプログラムを担当するべきであった。
  • 横田 裕紀 「活動記録」
    • 序盤は割と進めていくことが出来たが、統合の段階で上手く噛み合わないことも多く、グループで作品を作っていくことの難しさを実感した。
      最終的な作品では、gif画像ではなくpng形式を読み込むことになってしまうなど、所々妥協してしまったと思うが、何とか完成させることができてとても嬉しい。
      自分の担当したモジュールを作っていく際、プログラムに関する知識が不十分なところも見つかり、この講義を通してかなり実力が身についた。
  • 成田 恭平 「活動記録」
    • 自分の担当分は順調に進んでいると思ったが、プログラムの重要な部分が統合でうまくいかなくてかなり苦労した。もう少し先のことを考えたりするべきだったと感じた。
      また、モジュール化、モジュール分けの重要さを身を持って感じた。最終的にできた作品は、思うようにいかなかった点など多数あったが達成感があった。


最終更新日:2015/08/10 10:43:56