キーが押されたときの動き
キーボードの「→」を押したら右へ進む、「←」を押したら左へ進む。
今日は、こんなプログラムを作ってみましょう。
カニを横に動かす
カニのスプライトを使って、左右に動かすプログラムを作ります。
左上の緑の旗を「実行ボタン」、左上の赤い丸を「停止ボタン」と呼ぶことにします。
プログラムのスタートとストップの役割を果たします。
〔ずっと〕ブロックを使う
カニを歩かせるプログラムを作る場合は、こんな感じで作ります。
〔ずっと〕のブロックを使うと、中に入れたものがプログラム停止までずっと繰り返されます。
ずっとの中に〔もし左向き矢印が押されたなら〕を入れることで、「←」キーが押されたときに反応するようになります。
ここでは〔-10歩動かす〕を仕込んでおきます。
「10歩」は右に進み、「-10歩」は左進みます。
〔キーが押されたとき〕ブロックを使う
もう一つ、似たようなブロックがあります。
それが〔右向き矢印キーが押されたとき〕です。
こちらも、「→」キーが押されたときに右に進みます。
しかし、実際に組んで実行してみれば分かりますが、〔ずっと〕ブロックを使ったときとは若干違う動きをします。
滑らかに動かしたいときは〔ずっと〕ブロック
一番大きな違いは、動きがスムーズではないこと。
例えばパソコンでメモ帳を開き「z」のキーを押しっぱなしにすると、画面には「zzzzzzzzzzzz」と表示されます。
この入力をよく見ると、1文字目のzを打ったあと2文字目のzが出てくるまで、わずかに時間がかかります。
このようにキーを押しっぱなしにしたときのわずかな時間の隙間が、カニの動きに反映されてしまいます。
キーの押しっぱなしを使いたいプログラムの場合、〔ずっと〕ブロックを使った方がスムーズに動きます。
カニの色を変えてみる
さて、もう一つプログラムを作ってみます。
今度は〔コスチューム〕を変えてみます。
分かりやすくするために、赤色のコスチュームと黄色のコスチュームの2種類を作っておきます。
〔ずっと〕ブロックを使う
矢印キーを押したらコスチュームを変更するようにプログラムしてみます。
プログラム A-1 と同じように〔ずっと〕を使うとどうなるでしょうか。
1回だけ「←」キーを押したつもりなのに、何回も押したように判断されてしまいました。
〔キーが押されたとき〕ブロックを使う
次にこちら、〔右向き矢印キーが押されたとき〕を使ってみます。
すると、一度押すと黄色いカニに、もう一度押すと赤いカニに、次は黄色いカニと、きちんと交互に色が変わるようになりました。
1回ずつのキー入力なら〔キーが押されたとき〕ブロック
〔ずっと〕を使うと動きが早く滑らかになりますが、同時にキーの反応に敏感になってしまい、一度だけ押すという反応が難しくなります。
滑らかで連続性のある入力が必要な場合は〔ずっと〕、一度だけ押される、すぐにキーを離すような入力をする場合は〔キーが押されたとき〕を使うと良いでしょう。