※ 当ページには【広告/PR】を含む場合があります。
2020/06/22
【Scratch入門】リストの使い方〜ストップウォッチの記録を読み出す
【Scratch入門】繰り返しのテクニックを覚える〜最適なループブロックを選択しよう
今回はScratchアプリでキーボードからスプライトを操作するための基礎を解説します。キーバインドとは、キーボードで何かしらキーを押したとき、それに割り当てられた機能があった場合、それをプログラムが実行することを意味しています。なにかプログラムを作る場合は、ユーザーからのキー入力を適切に受け取りを行い、キーのリクエストに応じた機能を割り当てます。例として今回は↑
、↓
、→
、←
の十字キーへのキーバインドを解説していきます。
【Pschool厳選】Scratchを学べるオンライン・駅前プログラミングスクール5選
条件文の中でキー判定を行う場合
まずはキーバインドにはあまり適さない方法ですが、条件分岐の中でキーを判定して、処理を行うやり方をやってみます。プログラミングキャンバスの調べる
のブロックエリアから、スペースキーが押された
条件ブロックを選んで配置します。このブロックはキーの種類を選択して利用します。今回は、上下左右のキーのどれかを押すたびに、スプライトが移動するようなプログラムに仕立てます。とりあえず、ずっとループの中に条件分岐させるブロックに、上下左右のキーが押されたときにスプライトが移動するプログラムが以下のようになります。このプログラムを動かすと以下のようになります。早速、🚩
ボタンを押してスタートしてみてください。止める際には赤い●
ボタンで停まります。このプログラムはまだ未完成です。たとえば、連続してキーを入力した時に、移動の動作が遅延してしまったり、ごくたまにですがキー入力が無視される場合があります。というのは、キーバインドのような外部からイベント
を与えるようなプログラムを作りたい場合に、無限ループ処理を使って常にイベントが来るタイミングを見張っているようなプログラミングのやり方は、とても非効率です。またこのやり方では、プログラムがキーが押されたタイミングを見逃してしまうと、動作が遅れてしまったり、なんにも処理が起こらないままにされてしまったり、予期せぬ不具合が起こるかもしれません。
【Pschool厳選】Scratchをしっかり学ぶためのオススメ書籍まとめ
イベントで処理させる
キーバインドをするには、先程のようにループ処理のなかでキー判定させるより、キーが押された時に発生するイベントとしてプログラム処理をさせるほうがベターです。今後はプログラミングキャンパスのイベント
の項目からスペースが押されたとき
イベントブロックを使います。こちらは先程のやり方と違って、イベント(キーが押された)起こったときに、スクリプトブロックが実行されるようになります。上のプログラムをイベントで処理するプログラミングに仕立て直します。プログラミングは以下のようになります。それでは以下のプログラム画面の上で、十字キーを押してみてください。イベントが起こればスクリプトが始まりますので、🚩
ボタンを押したり、赤●
で停止する必要はありません。こちらは遅延を感じずに、スムーズにキー操作を受け付けていると思います。が、たとえば上キーと右キーの両方のボタンを長押ししてみると、どちらか(上か右か)にしか動かないはずです。イベントで処理を開始する特性として、2つ以上のイベントがほぼ同時に起こった場合には、早く入力されたどちらかが優先されて、遅く入力されたほうがキャンセルされてしまうようです。2つ以上のキーを同時に操作したい場合には、次の項目で述べるように、「なにかのキーが押された」イベントを利用すると良いです。
【Pschool厳選】Scratchを学べるオンライン・駅前プログラミングスクール5選
「なにかのキーが押されたとき...」イベントを利用する
機能を割り当てたいキーの数が多くなっていった場合、プログラミングのキャンバスに配置するブロックの数も多くなって、かなり見辛いプログラミングになってしまいます。「あのキーに割り当てたブロックはどこに置いたっけ...?」と探し回るのも面倒です。そんなときは、キーボードから沢山のキーを利用する予定ならば、なにかのキーが押されたとき...
の条件付きイベントから処理を開始し、その後でキーの判定を行う方法もオススメです。再度、プログラミングを変更してみましょう。修正したプログラムは以下になります。先程一つ前で説明した、キーごとにイベント処理のブロックを作るやり方と違って、こちらは同期的
なイベントになります。つまりは、同時に2つのキー入力があった場合にも、ひとまとめのイベントとして処理されるため、斜めに動かすことも可能になります。
【Pschool厳選】Scratchを学べるオンライン・駅前プログラミングスクール5選
まとめ
Scratchプログラミングのキーバインドのやり方を解説しました。十字キーの他にもいろいろなキーが存在しています。スプライトの移動以外の動作や状態に機能を追加したいときなどにも応用してみてください。