はじめに
目次
リスビボでは、今までプログラミングに触れていなかった大人でも教え方の参考にできるように解説していきます。今回は、Scratchでゲームを作る上で欠かせない「変数」について解説していきます。
「変数」という言葉になじみのない大人も多いと思います。イラストを交えて説明していきますので、なんとなく理解できたら、お子さまと一緒にScratchで例題を作ってみましょう。自分でプログラムを作っていくことで、変数のルールや便利さが確認できます。
変数とは
イメージするのは…見えない「箱」
変数は、よく箱に例えられます。コンピュータが計算する部分に数字や文字を保管して、好きな時にその中身を利用することができます。今はいくつなのか確認したり、その数に何か別の数を足したり引いたり、といった命令ができます。使う前にその器を用意し、名前をつけておかなくてはならないことは、各プログラミング言語で共通しています。
変数の使い方
キャラクターが1歩歩くと、1ずつ増えていく「歩数計」という変数を作るとします。まず必要なのは、箱を用意して、名前をつけることです。そして、まだ歩いていないときは数字の0を箱に入れておきます。
一般的な歩数計は1歩歩くごとに1ずつ増えていきますよね。変数の「歩数計」も2歩歩いたら1から2に、3歩歩いたら2から3に、、という風に新しい情報に更新していくようにするために、「歩数計」には「今入っている数字に1を足してね」と伝える必要があります。
Scratchで変数を学ぼう
ぼんやりと理解できたら、次はこの「歩数計」をScratchで作ってみましょう。ゲームのプログラムではなく、変数の使い方を学ぶための簡単なプログラムです。
最初の位置を決める
Scratchを開いたときに出てくるオレンジのネコを使って、歩きに合わせて歩数をカウントすることにします。
「イベント」から「緑の旗が押された時」と、「動き」から「X座標を0、Y座標を0にする」を持ってきて、スタート時はネコが必ず画面の真ん中に置かれるようにします。
変数の箱を用意し、名前をつける
コードブロックのジャンル「変数」を押して、一番上の「変数を作る」をクリックします。先の説明で、変数を使うときは「変数の箱を用意する」とお伝えしました。Scractで変数の箱を用意するには、「変数を作る」を押します。
新しい変数名は何にするか決めるウィンドウが出るので、「歩数計」と入力して、右下の「OK」を押します。(青い丸は「すべてのスプライト用」のままで大丈夫です。)
0からカウントする
まだ1歩も歩いていないときは0と表示させるために、「変数を0にする」を持ってきて、「変数」と書かれた部分を「歩数計」に変更します。(小さな白い三角を押すと選択肢が下に表示されます。)
右向き矢印キーが押されたら移動する
ネコは自動で歩くのではなく、右向き矢印キーが押されたかどうかを判定して、押された時はぴょこぴょこ歩くようにしてみましょう。「制御」から「もし〜なら」を持ってきて、その中に「調べる」にある「スペースキーが押されたとき」を「もし〜なら」の中に入れます。「スペースキー」を「右向き矢印キー」に変更します。
「動き」から「X座標を10ずつ変える」を持ってきて、「もし〜」の中に入れましょう。
ここで緑の旗を押して、キーボードの右向き矢印キーを押してみましょう。右にスーッと滑っていくのは、「歩いている」ようには見えませんね。それから、変数「歩数計」の数字は変わらないので、変わっていくプログラムを用意しないといけないことがわかります。
歩いているアニメーションをつけて、歩くたび「歩数計」を1ずつ増やす
「見た目」の「次のコスチュームにする」を「X座標を10ずつ変える」の下に入れましょう。(コスチュームは画面左角のほうにある「コスチューム」のタブから、どんなものが用意されているか確認できます。)できたら、「変数」の「歩数計を1ずつ変える」を持ってきて、「次のコスチュームにする」の下に入れます。
緑の旗を押して確認します。パタパタを足を動かして、「歩数計」の数は増えていきますが、少し早すぎるようです。
「1秒待つ」を入れて時間を調整する
「制御」の中にある「1秒待つ」を入れて、時間を調整します。これで、右向き矢印キーが押されてネコが歩くのと同時に、「歩数計」が増えていくプログラムが完成しました。
カウントを10からスタートさせるためにはどうしたらいいでしょうか。1歩歩くと「歩数計」が3増えるようにするにはどうしたらいいでしょう(もはや『歩数計』ではありませんが)などを考えてみると、より理解が深まると思います。左に進むと「歩数計」の数が減る、というプログラムを作ることも、学びが多いのではないでしょうか。
最後に
変数は、ゲームキャラクターの体力、現在のポイントなどを計算するときに必須になる考え方です。「グローバル変数とローカル変数の違い」など少し深い説明は省略しています。変数とはどういったものか、必要な手順の理解に役立てていただければ幸いです。
コメント