(解説)しめじ先生の大冒険

ゲームはこちら

念願かなって、授業にて作品を発表することができました。(一度やってみたかったので・・・もう思い残すことはありません(笑)

しかし、ちょっと想像以上にサプライズに成功してしまって驚かせてしまったようですが、引かれてしらけてしまったらどうしようかとそれだけが心配でしたので、盛り上がっていただけてよかったです。(「ぼくのトイレットペーパー!!」と叫んでくれたのには嬉しかったですね。)

喜んでいただいたので、技術的なことはもうどうでもよくなって(実際純粋にプレイする側としては問題は面白いかどうかであってどうやって作ったかとかはどうでもいいわけで)、盛り上がってプレイしていただいたのをただ嬉しく見つめていました。

時間もオーバーしていましたし、感想のカードをくれたのは一人だけだったのですが(それでも十分嬉しいです)、面倒ぐさがりの息子が「お母さんにも感想!」と言って急いで感想を直接紙に書いてくれました。「記念的な作品を上手くゲームにしていてすごいと思います」。ちょっと日本語がおかしいですが、上手くゲームにできて記念的な作品になりましたということが言いたかったのでしょう、息子にも何か伝わったんだと思って嬉しく思いました。

ここで工夫したところや難しかったところを記録しておきます。

難しかったところ

・吹き出しのセリフのところ

吹き出しやセリフの大きさがそれぞれ違うので、出る場所に合わせてさらに左右の画面からはみ出さないように出すのに調整が大変でした。

・音と動きのタイミング

動きに合わせて音を選ぶのとタイミングを合わせるのに苦労しました。

・ドット絵

難しくはないですが、一番時間がかかるのがこのドット絵です。満足がいかないと思えば際限がない。デザイナーさんってすごいなー。

工夫したところ

・連射できてしまうと端にいてピュンピュン撃てばいいだけになって簡単すぎるのでできないようにしました。

・バグに捕まって穴に落ちるところは、スクロールをつかってみました。今井先生がつくってくださった、上下左右の設定が便利でした(・・・が最初何度やってもうまくいかず、まさか先生の設定が間違っていると思わず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回だけ働くように書き直してみました。すると、やはりそのとおりだったみたいで、動くようになりました。ヤッター/

これから何かに行き詰まったら、お風呂に入ることにします^^;

修正前

修正後

(通常モード)しめじ先生の大冒険ソースコード
(おたすけモード)しめじ先生の大冒険ソースコード

しめじ先生の大冒険

                                                                

通常モード 

 

 おたすけモード
(ゲームオーバーなし・おたすけボタン有)

・ドラッグで左右に移動、離すと矢を放ちます。
・矢は光っているときしか撃てません。
・バグ(虫)に捕まるとゲームオーバーです。避けてください。

【おたすけモード】
・バグに捕まってもゲームオーバーになりません。
・画面のどこかにあるおたすけボタンをクリックすると、まとめて全員救出することができます。
・クリアした後の画面がループして繰り返します。

〜素材〜
CODE FRIENDS大垣ドリームコアS3の皆さん
©️おざきしめじ ©効果音ラボ (C)PANICPUMPKIN
無料効果音で遊ぼう! フリー音楽素材/魔王魂 
DOTS・DESIGN ぴぽや ドット絵素材 

解説はこちら

 

 

 

 

 

 

 

 

 

 

クリックで拡大

おりゃ〜測定器 

人工知能のところで、カウントによって画像や動きを変化させるということをやったので、それを使って、連打の数によって画像が変化するものをつくりました。

60以上になると、千万両の小判が降ってきますが、これはなかなか難しいと思います。

【工夫したところ】

・3、2、1とカウントされてからスタートしますが、スタートするまでは、board.touchEnabled = false;によって、タップできない(タップしてもカウントされない)ようになっています。始まったら、board.touchEnabled = true;としてカウントされるようにします。(制限時間が終わったら同様にタップしてもカウントされないようにする)

・30点で田吾作の向きが変わりますが、modeのパラメータを使って、一度だけ変わるように制御しています。落ちてくる画像の変化についてもmodeを使いました。

完成したソースコード

教室からの脱出

授業で共同の作品を作り始める前に、教室をテーマに脱出ゲームをつくりたいと言ってつくりはじめていたので、それを完成させました。絵は、手伝いました。

完成したソースコード
教室からの脱出
ヒント

①丸まった紙をクリックして開く ファイルをクリックして開く
講師を所定の位置に
②映し出された問題を解く 部屋を出る
③エレベータに張り出された問題を解く
①〜③の数字をセットする
クリア!

打合い100いけたら神

タッチムーブをまだ習っていないときに、バーをクリックで動かすものを作ったので、それに、タッチムーブで動かすモードも付け加えたものです。

さらに、ストレージを習ったので、結果画面に得点が出るようにしました。

ゲーム画面が始まったときにremoveLocalStorageで初期化して、球を打ったときに、得点(score += 1; )と得点がセーブ(setLocalStorage(“得点”, score);)されるようになっています。

・完成したソースコード

打合い100いけたら神