2016.08.06Scratch で始める小学生からのプログラミング
スクラッチでGo(2):小学生からのプログラミング
みなさま、こんにちは。代表の小林です。夏休みも中盤にさしかかり、折り返し地点という感じですが、いかがお過ごしでしょうか。小学生も宿題があるのを忘れて遊んでいる時期という気もします。
今日は、前回の記事の続きでスクラッチGo について書いていきます。前回の記事では、ボールが開くアクションを描くまででした。今回は、モンスターを吸い込んでゲットする部分と、モンスターを不規則に動かす部分を作っていきます。
ステップ3:モンスターを吸い込ませてゲットする
次のステップは、モンスターをボールに吸い込ませて、ゲットするアニメーションを作ります。ゲットするまでの流れは次のように考えました。
- ボールがモンスターにぶつかる
- 右45度方向にボールが移動し、蓋が開く
- モンスターがボールに吸い込まれる
- ボールが閉じて真ん中にポトッと落ちる
- ボールがぐるぐる揺れる
- ポケモン、ゲットだぜ
前回の記事では、2番まで作っているのですが、3番以降の動きを作っていきます。前回の2番の部分で、ボールがあいて、閉まるアクションを入れていましたが、閉まるアクションはとりあえず外し、ボールがあいたあとに、モンスターが吸い込まれるアクションをいれます。今回のようにアクションを順番に行っていくときに使うのは、メッセージです。前回作ったGetMonster でメッセージの処理をした後に、GetMonster2 というメッセージをいれて、ボールがあいたあとのネコが吸い込まれるアクションをいれます。
ボールが吸い込まれるアクションは、ボールのある位置にネコが移動して、大きさをちいさくするようにプログラムをつくってみました。実際に見ていただければ、なんとなくシュッと吸い込まれるように見えるはずです。その後、ボールを閉めて、ゲットするまでの画面を作ります。ネコが小さくなって消えたあとの処理として、ボールを閉めて移動させます。
中央に移動するのは、x座標とy座標を0にセットします。その後、見た目でコスチュームを切り替え、下側に移動させるために180度に向けます。そして、ブロックにしていますが、10歩ずつしたに移動させるのを10回繰り返します。これのあと、ボールが揺れるアニメーションを、コスチュームを5段階切り替えながら表示します。最後に、星が出てきてゲットです。ゲットしたことを表示したいので、メッセージを追加します。
コスチュームを自分で書いて、図のようなメッセージ表示を作ります。本当はテキストを使いたいのですが、日本語入力に対応しておらず、日本語が表示できません。そのため、フリーハンドで記述してます。
そして、ボールに星が表示されたあとに、GetMonster4というメッセージを飛ばし、この作成したメッセージ用のスプライトで表示させます。終わったあとは、元に戻すのメッセージを送り、最初の状態に戻します。
ステップ4:モンスターを動かす
とりあえず、モンスターをゲットする動作は書いたのですが、ボールを投げたらゲットされてそれで終わってしまうので、ゲームとして成り立ってません。モンスターを動かして少々ゲットしづらくしてみようかと思います。また、ゲットした後にもう一度出てくるようにします。(本当の Pokemon Go だと、歩いて探すのでしょうが、このアプリだとそれは難しいので、とりあえずモンスターは出てくるようにします。)
そこで、次のようにします。
- モンスターボールに触れるまでつぎの処理を繰り返す。
- 1秒で x座標を -200から200に変える
- 0.5秒まつ
- モンスターボールに触れるまでつぎの処理を繰り返す
- つぎのコスチュームにする
- 0.1秒待つ
最初の部分の処理は、モンスターボールが飛んできて当たるまで、モンスターを移動させるための処理です。他の記事でも何度か登場してますが、不規則な動きを作るために使うテクニックは「乱数」です。乱数で左右に不規則に動くようにしています。また、移動している処理とは別に、ネコのアニメーションを動かします。足をバタバタしたように見えるのですが、走っている感じの動きに見えます。アニメーションを作るためには、コスチュームを切り替えるようにします。
まとめ
ここまで作るとネコをゲットするゲームらしくなってきたと思います。ネコも不規則に動くので、ボールを投げても当たらない感じがちょっとじれったくなっていい感じになります。これにさらにゲームの設定として次回の記事では、経験値とレベルアップなどの要素を追加していきます。お楽しみに。
東京都文京区小石川で小学生、中学生、高校生を対象としたプログラミング&ロボット教室を開校しています。コース概要のページで説明しております。創造性や協調性などこれからの時代に必要となる素養を育てるコースです。ご興味ありましたらぜひお問い合わせください。
お問い合わせはこちら!
]]>