念願かなって、授業にて作品を発表することができました。(一度やってみたかったので・・・もう思い残すことはありません(笑)
しかし、ちょっと想像以上にサプライズに成功してしまって驚かせてしまったようですが、引かれてしらけてしまったらどうしようかとそれだけが心配でしたので、盛り上がっていただけてよかったです。(「ぼくのトイレットペーパー!!」と叫んでくれたのには嬉しかったですね。)
喜んでいただいたので、技術的なことはもうどうでもよくなって(実際純粋にプレイする側としては問題は面白いかどうかであってどうやって作ったかとかはどうでもいいわけで)、盛り上がってプレイしていただいたのをただ嬉しく見つめていました。
時間もオーバーしていましたし、感想のカードをくれたのは一人だけだったのですが(それでも十分嬉しいです)、面倒ぐさがりの息子が「お母さんにも感想!」と言って急いで感想を直接紙に書いてくれました。「記念的な作品を上手くゲームにしていてすごいと思います」。ちょっと日本語がおかしいですが、上手くゲームにできて記念的な作品になりましたということが言いたかったのでしょう、息子にも何か伝わったんだと思って嬉しく思いました。
ここで工夫したところや難しかったところを記録しておきます。
難しかったところ
・吹き出しのセリフのところ
吹き出しやセリフの大きさがそれぞれ違うので、出る場所に合わせてさらに左右の画面からはみ出さないように出すのに調整が大変でした。
・音と動きのタイミング
動きに合わせて音を選ぶのとタイミングを合わせるのに苦労しました。
・ドット絵
難しくはないですが、一番時間がかかるのがこのドット絵です。満足がいかないと思えば際限がない。デザイナーさんってすごいなー。
工夫したところ
・連射できてしまうと端にいてピュンピュン撃てばいいだけになって簡単すぎるのでできないようにしました。
・バグに捕まって穴に落ちるところは、スクロールをつかってみました。今井先生がつくってくださった、上下左右の設定が便利でした(・・・が最初何度やってもうまくいかず、まさか先生の設定が間違っていると思わず2日間悪戦苦闘したのでした。私の2日間の苦労を返して・・!(笑))
・虫の動き・・最初はまっすぐに向かってくる動きにしたのですが、それだとなぜか異様に気持ち悪かったので、ジグザグに動くようにしました。
・揃ったらクリアというところはストレージを使いました。
・クリアの胴上げをイメージしたところは、box2dをつかってジャンプさせています。簡単にリアルな動きをつくることができました。
【モバイルでバグが出るのを修正】
授業での発表の後に何気なくipadのほうでも開いてみたところ、途中で止まってしまうことに気づきました。もしかしてモバイルでは正常に動かない?・・どうやらそのようでした。
通常モードではバグに捕まったところで(!まさにバグのところでバグ)、おたすけモードでは全員揃って生徒たちに連行されるところで止まります。
モバイルのほうではconsole.logを見ることもできないのでどうしてなのか全く見当もつきませんでした。最初はスクロールレンジをつかっているのが原因かな?と思いましたが、おたすけモードのほうでは使っていないのでそうではないと思われました。
ここで両方に共通するのは、BGMの音を止めているということです。それしかありません。このBGMは、forを使って10回繰り返すように設定してあります。1回につき約140秒なので、さすがに10回繰り返すうちにはクリアするでしょうと。forを使っているのは、普通のスクリプトのループでは、ローカルや他の環境では動かなくなるからです。(画像が出ず真っ白になる)
その中で、音を制御するために、ENTER_FRAMEを使ったのですが、それが原因じゃないかと思って、その部分を無効にしたら、やはり動きました。しかしそれではBGMを止めることができなくなります。
それでこのENTER_FRAMEを使わずに音を止めようとしたのですが、そうすると今度はBGMのループがうまくいかなくなります。2回目から再生されなくなったり、2回目以降再生されても止められなくなったり。やはりENTER_FRAMEを使ったほうがうまくいくと思われました。
そこまでの考えに行き着いて、もっとやりたかったんですが夜も更けてきて明日も早起きして主人のお弁当つくらないといけないし、お風呂に入ろう、そしたらいい考えが思いつくんじゃないか、と自分に言い聞かせてお風呂に入りました。
そうしたらなんと言うことでしょう、お風呂の中で思いついたのです。ENTER_FRAMEの判定の条件が効きっぱなしになっているのが負荷になっているのではないかと。
ifの条件を満たしたらstopなのですが、それが一回こっきりではなくて、ずっと条件を満たして働き続けてしまう書き方になっているのがいけないんじゃないかと気付きました。
AIのところで教えていただいたのを思い出して、条件を満たした時に1回だけ働くように書き直してみました。すると、やはりそのとおりだったみたいで、動くようになりました。ヤッター/
これから何かに行き詰まったら、お風呂に入ることにします^^;
修正前
修正後