🍜 おとうさん、おかあさんのためのScratchで作るプラットフォーマー入門 ①
作成日: 2021/09/16
1

読み飛ばして良いまえがき
おそらく多くの小学生には1台ずつ端末が配られ…… 学校で制限されていない限り、子どもたちは無料のゲームを楽しんでいることでしょう。そんな姿をヤキモキして見ている親御さん……、きっとすぐに「◯◯ちゃんはパパと一緒にゲームを作っているらしいんだけれど、私もやりたい!」と言ってくる可能性があります。このページは、そんな時に見る解説ページです。



読み飛ばしてはいけないまえがき
Scratchのアカウント作成や基本操作は僕が書くよりわかりやすいページがあると思いますので検索してみてください。このページは、一応、アカウントを持っていて、こんな風に操作するというのがわかっている方向けです。
ただし、プログラミングに関しては凄く初歩からやりますので、ご安心ください。

最終形は先においておきます。
コピーして手を加えてもらって構いません。
https://scratch.mit.edu/projects/571121487/



本日の本題

いきなり最終形を見ても、きっとなんじゃこりゃという感じだと思いますので、今日は猫を左右に動かすところまでやりたいと思います。

今日の目標は超ざっくりいうと、キーボードの左右のキーを押した時に、猫を左右に動かしたいわけです。
だとすると……
スクリーンショット 2021-09-16 22.32.40.png
こんな風に書きたくなると思います。
ちなみに緑の旗は、プログラム全体の処理スタートのトリガーです。
この時点のもの → https://scratch.mit.edu/projects/571138816/

どうですか?
これで動きますか?
動きませんか?

実は、これ、一応動きます。
キーボードの右を押しながら、緑の旗を押すと1回だけ右に動きます。

つまり押している間ずっとそれを繰り返すというのが無いんですね。
したがって、これが正解。
スクリーンショット 2021-09-16 22.38.01.png
これであれば、緑の旗を押したあと、キーボードの右が押されると、猫も右に進みます。
この時点のもの → https://scratch.mit.edu/projects/571145051/

右にだけしか進まないのは寂しいので、ちゃんと左にも進むようにしてあげます。
スクリーンショット 2021-09-16 22.41.57.png

このままだと赤丸を押したときの位置が残ってしまうので最初にx座標を0にするというのを入れて、位置の初期化をします。
スクリーンショット 2021-09-16 22.46.04.png
この時点のもの → https://scratch.mit.edu/projects/571146208/

これで無事、猫がキーボードに連動して動くようになったので 🎉 という状態です。



ただ、このままだとゲームっぽい動き(謎)ではないので、少しアレンジします。

「左右の動き」という変数を作りました。
キーボードは、直接猫のx座標を操作するのでなく、この「左右の動き」という変数の増減を制御します。
そして、猫のx座標は「左右の動き」の中身を元に移動量が決まるようにします。
(「左右の動き」もちゃんと初期化して0にしています。)
スクリーンショット 2021-09-16 22.51.03.png
この時点のもの → https://scratch.mit.edu/projects/571155652/

どうなりましたか?
スケートリンクのようにつるつる滑るようになったと思います。
ただ、この動きでプラットフォーマーを作ってしまうと、スタート地点からいきなり氷ステージ(謎)になってしまうので、ちゃんと減速して止まるようにしてあげましょう。
(最後に強制的に 0 にしているのは、誤差で少し動きが残ってしまうことがあるからです。難しい……。)
スクリーンショット 2021-09-16 22.59.14.png
この時点のもの → https://scratch.mit.edu/projects/571156789/

これでキーを離すと少しずつ減速してくれますが、逆にキーを押し続けると無限に加速して、反対のキーを押してもしばらく反応してくれない状況が発生してしまいます。なので「左右の動き」に上限値と下限値を作ります。
スクリーンショット 2021-09-16 23.07.04.png
これで「左右の動き」は ±5 の範囲に収まります。
この時点のもの → https://scratch.mit.edu/projects/571158066/

どうですか?
これでかなりプラットフォーマーっぽい左右の動きになりませんか?
(ちなみに僕ははじめて自分の操作でキャラクターが動いたときには、しばらく「むふふふ……。」って思っていました。)

さて…… 今日はここまで。
パラメータをいじって、動きの変化を楽しんでいただければ。
現在は動きの減速について -0.1 とか定数で書いていますが、ゼノンのパラドックスのように速度半分、その次はさらに半分…… みたいな減速方法もあります。



シリーズ「おとうさん、おかあさんのためのScratchで作るプラットフォーマー入門」



Twitterもやっているので、よかったらフォローしてください。
https://twitter.com/Kaitou1192

本業はコードを書かせてもらえないフロントエンドエンジニアです。 こんなサービス作っています。 https://lp.re-shine.jp