TOIO+Scratchで遊べるゲームを作りました。
TOIOとScratchに関しては、 https://toio.io/programming/ を参照してください。
プロジェクトファイルは一時的にここに置いています。
ダウンロードボタンで「地雷原疾走.sb3」ファイルをダウンロードしてください。
プログラムもScratchに読み込んで確認してください。
https://drive.google.com/file/d/15BE3KCnD79pzQJ4hcMF2mkr_POJVmCKd/view
ゲームルール
下の図のようにAからBまでキューブを移動するゲームです。
もちろん簡単にはいけません。
こんな感じに地雷が埋まっているので、交わしてゴールしなければなりません。
(外周はスタート、ゴール以外すべて地雷です)
もちろん、地雷に上ってしまったらゲームオーバーです。
ゲームの開始
キューブをマットに乗せるとAの位置(ホームポジション)に自動的に移動して、カウントダウンを始めます。
ピ!ピ!ピー!の音の合図でゲーム開始です。
操作方法
↑ボタン | キューブを1マス前に進めます。 |
← →ボタン | キューブを90°左、または右に回転させます。 |
SPACE | 1マス前に地雷があるかを調べます。 あると、赤いランプと音で警告します。 |
ゲームクリア
Bの位置までキューブが移動できればクリアです。
クリア音とともに、キューブが回転して喜びます。
クリアするとパソコンの画面にクリアまでにかかった時間が表示されます。
ゲームオーバー
地雷に上ってしまったら、キューブから地雷を上った音が鳴り自動停止します。
その後キューブを操作できなくなります。
プレイ動画クリア編
プレイ動画爆発編
地雷に踏んでしまうとこんな感じです。
プログラムについて
配布しているファイルは自由に改変して楽しんでください。
数時間で作ったものなので、バグは寛大な気持ちで修正してください。
そしてちょっとコードが汚いところはご容赦を。
バグなどがありましたら、コメントやtwitterで報告いただけると嬉しいです。
苦労した点
Scratchはじめての方もいるかと思いますのでちょっと説明しますと、いつものプログラムで使えるテクニックが制限されます。
よく言えばより低レベルの制御が必要な場面がよく出てきます。
2019/12/22一部訂正があります。
以下のtweetを参照ください。
スプライトとクローンをうまく使えば、クラスとインスタンスの関係を疑似的に再現できそうですね。
勉強の余地ありです。
奥が深い。
グローバル変数しかありません
変数名のつけ方は工夫しないとすぐに変数がいっぱいになって、見失います。
グローバル変数しかないため、地雷原の生成に壁のばし法のアルゴリズムを使おうと思いましたが、再起呼び出しがうまくいかず今回のバージョンはちょっと適当バージョンです。
二次元配列がありません
これが一番こまった、今回はかなり強引な方法を使っています。
情報が1 or 0で地雷原を表現できたので実現出来たら、複雑な処理はちょっと考えないと難しい。
TOIOのキー制御
キーイベントで操作すると、連続してキーが押された場合に同時に処理が走ります。
工夫してキーの処理が終わるまで次の処理が発生しないようにしています。
TOIOの動作と、音と、ランプを並列実行する
先に非同期付きはなしができるメッセージを発生させ、メッセージの受け取りで処理することで並行して、動かしながら音を鳴らしたりしています。
TIOIOの向きの制御
向きの表現が0°~360°ではありまえん。
時計回りに0時から6時までが、0°~180
反時計回りに0時から6時までが、0..-1°~-179°..180°
で表現されておりちょっとはまりました。
子供がプログラム時にわかりにくい点
のちのち、息子が複雑なプログラムを組むときに使えるように、一部簡略化できる定義をいくつか今回のプログラムで用意しています。
使えそうなら使ってやって下さい。
座標
直感的にマットの「-4 → 0 → 4」というマイナスから始まる概念が小学生の低学年にはわかりずらいので、1→9の座標に変換する定義を作っています。
角度
これも小学生の低学年にはわかりずらいので、角度ではなく
「上、右、下、左」の4値で扱えるような工夫をしています。
さいごに
もうすこしルールを工夫したら面白そうなものもできそうなので、地雷疾走はバージョンアップ予定です。
Scratch面白いです。
昔、練習に作った〇ラディウスもどきです。
これが数時間でできます。
なかなか楽しいので、いつものプログラムに疲れたらScratch楽しですよ。
https://scratch.mit.edu/projects/203380748/
コメント
[…] 別記事で私の作ったプログラムも公開しています。TOIO地雷原疾走 […]