<<プロジェクト名>> 脱出ゲームツクール <<プロジェクト説明>> 脱出ゲームをユーザーが作成し、作ったゲームをプレイできるゲームの作成。
・ユーザーが用意した画像をゲームの背景、アイテムのグラフィックとして利用できる。
・東西南北の4方向をそれぞれシーンとして管理し、アイテムやオブジェクトを自由に配置できる。
・各オブジェクトに効果を加えられ、制作するゲームのフラグとして作成できる。
<<ものと操作の洗い出し>> >>{ゲーム制作ツールにおける必要なものと操作}{ものと操作の洗い出し} <<モジュール分け>> >>{g08:モジュール一覧}{モジュール一覧}
<<ゲーム説明>> *htmlファイルを開くとツールが起動し、タイトル画面が表示される。 *初めに画像編集を行う。 **画像変更には画面のリロードが伴い、編集がリセットされてしまうため最初に一回しか実行できない。 **指定したディレクトリの中の画像を外側から同じ名前で置き換えて、プログラム内部で呼び出すファイルを変更させる。 **書き換えたらリロードする。 *次にアイテムの編集を行う。 **アイテムの名前、効果(カギ、ハコ、ドア、カザリ:見た目だけの物)、対応先を指定させる。 **配列の中に格納されるため、編集画面にも対応できる *最後にシーン毎の編集を行う。 **制作したアイテムを設置する。 **ハコの効果を与えたアイテムは中からアイテムを取り出せる。 **ドアはゴールの条件となる。 *そして作成したゲームをプレイできる。 **何度もテストプレイと編集を行き来できる。 <<プログラム概要>> *pushsceneでの変遷の間に、配列に保管した座標や画像、効果を呼び出し、それを引数にして関数を実行するなどして作成→実行を実現している。 **作成ゲームデータの保存、再現までは断念・・・ *ハコはアイテムを取り出し、カギはハコかドアを開け、ドアでクリアできる。見た目だけのアイテム(ヒントのアイテムなどに使用)も実現。 **入力フォームやマウス操作などによる謎解きを作成できるようにしたかったが、それも断念。 *ドアのカギを開けることでゲームクリアのシーンに飛ぶ。
<<個人の感想、苦労・工夫した点>> <<<高橋司>>> 主に、アイテムに効果を持たせることを実現するモジュールを作成した。
pushscene、addchildの仕様を理解する段階で時間をかけてしまい、実際に効果を持たせる方法を考えるまでになかなか到達できなかった。 しかし、ボタンによるアイテムタイプの規定に成功してからは意外とスムーズに進行できた。 橋本君が作ってくれた、アイテムの名前、画像、効果の配列を要素に持つ二次元配列を使わせてもらえたので(それと文字入力フォーム)、そのうち名前の配列をユーザの操作に合わせて指定された要素を上書きするようにして、実現できた。

実際の操作は、ボタンのクリック判定をイベント発生のトリガーとし、アイテムの種類それぞれのイベント内で、「ユーザにより変更されたアイテム名」「そのアイテムが四種類のうちどれか」「どのアイテムと対応しているか」をそれぞれの配列に格納し、適切に呼び出されるように頑張った。

実際のアイテムの効果(カギを開けるプログラム、ハコから取り出すプログラム、ゴールするプログラム)は谷口君が作ってくれているので、実際やったことといえばたくさん配列を定義したくらいである。イベントごとに配列をわけたり、アイテム全体の配列を使ったりと使い分けをするところが工夫と言えるかもしれない。
あと、アイテムの対応がきちんと規定された時にテキストの表示で「〜を開けます」などと表示されるようにした。これがあるとないとで結構安心感が違う。
<<<谷口隆一>>> 作ったものはアイテム配置、アイテムの効果、ちょっとだけテキスト。
もっとアイテム効果を増やしたかった!
セーブ機能は時間がなくて実装できなかった。時間があれば実装したい。
もっとはやく作ってテストプレイするべきだった。
つくってから、あの機能がほしい。と思うことが多かった。
<<<阿部修也>>> シーン編集やテストシーンでの画面の管理を担当した。 最初にSceneごとで分割しようとしたために、pop・replace・pushでSceneを切り替えた配置したアイテムのデータの保持がうまく行かず、とても時間がかかってしまった。結局、Sceneで分けることは断念し、背景画像を方角ごとにわけてそれを切り替える方法にした。実際やってみて、この方法のほうが、もしズームアップする箇所を実装する時(今回は時間の都合でできなかったが)、別の背景画像を用意して追加するだけなので楽だと感じた。アイテムの配置に関しては、関数を用意してくれた隆一のおかげで実現することができた。自分のプログラミング知識が浅いために単純なことでも時間がかかってしまったりして、本当に勉強不足だった。そして最終的な統合がとても大変で、最終的な統合を担当してくれた隆一には感謝しかない。
今回1からjavascriptを学び、初めてチームでプログラミングをしてみて、モジュール分けの段階からもっと細かく分担をきめて、モジュールごとの関わりなどをしっかり把握した上で、作業にとりかかることが大切だということがわかった。
一つのjsファイルにまとめなければならなくなった時の大変さをよく知ることができた。 <<<橋本裕太>>> <<<熊谷太翼>>>