スクラッチには「ペン」というブロックがあります。
今回はこのブロックを使ってお絵かきが出来るプログラムを作成してみます。
完成したプログラム
スプライトのプログラム
ステージのプログラム
プログラムの流れ
がクリックされるとステージ内の状態がリセットされます。
ステージのどこかをクリックし、マウスカーソルを動かすと線が描けます。
この線はもう一度ステージのどこかをクリックするまで描くことが出来ます。
ステージのクリックで線を描くかどうかのスイッチを切り替えているイメージです。
プログラムを作る為の準備
scratch3.0で「ペン」を使用するには拡張機能で追加をする必要があります。
「コード」の画面下部にある青い部分をクリックします。
↑この部分をクリックすると「拡張機能を選ぶ」という画面が出てきますので、「ペン」を選択します。
これで「コード」にペンが追加されたので、プログラム作成の準備は完了です。
「ペン」ブロックの使い方
「ペン」ブロックは基本的に「ペンを下す」「ペンを上げる」の二つで使用できます。
ペンを下してからスプライトを動かすと、スプライトの中心に線が描かれます。
今回のプログラムでは、スプライトの見た目を隠し、マウスカーソルから線が描かれているようなプログラムにしています。
まずは変数を用意します。
今回は「ペン」という変数にしました。
この変数に「下ろす」「上げる」の二つを入れるようにし、この変数の状態を見てペンを下すか上げるかを判断します。
今回のプログラムでは、ステージのどこかをクリックしたらという条件にしているので、ステージのプログラミングエリアを選択します。
イベントは「ステージがクリックされたとき」を使い、変数の状態を逆にするようなプログラムを用意します。
変数の状態を逆にするというのは、変数が「下ろす」ならクリックされた時に「上げる」になるということです。
これで変数の状態を判断するプログラムは完成しました。
次はスプライトのプログラムです。
こちらがスプライトのプログラムとなっています。
上から順を追って説明をします。
まず、今回のプログラムはスプライトを見えない状態にして、マウスカーソルで直接線を描いているようにしたいので、
最初にスプライトの見た目を隠します。
そしてそれと同時にステージ上の状態をすべてリセットします。
「全部消す」というのは文字通りステージ上の線をすべて消すことが出来るブロックです。
その次に、ペンブロックを使って「ペンを上げる」事と変数も「上げる」に変更します。
ペンブロックで線を描く場合はスプライトの中心に線が描かれるので、スプライトを常にマウスについてくるようにプログラムしなければなりません。
「動き」にある「x座標を〇、y座標を〇にする」というブロックを使い、それぞれの座標をマウスの座標に合わせます。
これでプログラムが動いている時にステージ上にマウスカーソルがあれば、スプライトはマウスカーソルにピッタリ付いてくるようになりました。
あとは先ほどの変数の状態に応じてペンブロックでペンを下すか上げるかを指定します。
ここまでプログラムが出来ればをクリックしてプログラムを動かしてみましょう。
ステージをクリックすると線が描かれ、もう一度クリックすれば線が止まるプログラムが完成しているはずです。
ペンブロックには他にも色々な使い方がありますが、今回は「線を描く」という基本的な部分のみ使用してみました。
コメント