スクラッチの機能別操作

スクラッチの機能拡張「ペン」を使って、正方形や正五角形、正六角形を描こう

最終更新日 2025年4月26日 by toytune

スクラッチはアメリカの大学、MIT(マサチューセッツ工科大学)メディアラボで開発されたビジュアルプログラミング言語です。

はじめに

スクラッチでは、拡張機能を追加することで新しいブロックを使えるようになり、できることがさらに広がります。たとえば、スプライトで絵を描いたり、音を操作したり、外部機器と連携することも可能です。

今回は、拡張機能「ペン」を使って、スプライトが線を引きながら正方形・正五角形・正六角形といった図形(正多角形)を描くプログラムを作ってみましょう。

▼ 今回作成するプログラム(の旗をクリックして動作を確認することができます)

「ペン」の拡張機能を追加する

まずは「ペン」のブロックを使えるようにしましょう。

画面左下に「拡張機能」を追加するアイコンがあります。下記の画像を参照しクリックしてください。

画面左下の拡張機能のところをクリック

画面が遷移し、様々な「拡張機能」の一覧が表示されています。その中に「ペン」というものがあるのでクリックします。

表示されてる拡張機能からペンをクリック

ブロックの中に「ペン」というものが追加されています。
クリックして中を見てみると、いくつかの「ペン」のブロックが追加されていることがわかります。

このブロックを使って図形を描画するプログラムを作っていきます。

ブロックの中からペンをクリック

ペンを使って線を引いてみる

簡単な動作で線を引いてみましょう。

「イベント」から「が押されたとき」をドラッグします。

旗が押されたときをドラッグ

次に「ペン」から「ペンを下ろす」というブロックをドラッグしくっつけます。

この「ペンを下ろす」というのは、「ペンの先を紙にのせる」ということです。
つまり、がクリックされたその位置が描画の開始地点ということです。

ペンからペンを下ろすをドラッグし旗が押されたときのしたにくっつける

「ペンを下ろす」の状態から線を引きたいので、スプライトを動かします。
「動き」から「10歩動かす」をドラッグし下にくっつけます。

10歩動かすをドラッグしペンを下ろすのしたにくっつけ10を100に変更する

次に描画する上で、角度も変えていきたいので、「動き」から「15度回す」をドラッグし下にくっつけます。
今回は直角にしたいので、中の数値を「90」に変更します。

15度回すをドラッグし100歩動かすのしたにくっつける。15から90へ変更する

ここまでの動作を確認してみます。

をクリックすると、一瞬でスプライトが右に動き90度下を向き、動いたところに線が引かれています。

ステージの旗をクリックすると一瞬で線を引いてスプライトの角度が変わった

一旦、これで良さそうですが、スプライトの位置をリセットしておきたので、スプライトの下記の数値を戻します。

  • x・・・・0
  • y・・・・0
  • 向き・・・90
スプライトのxとyをそれぞれ0にし向を90にする

スプライトの位置をリセットする仕組みをつくる

動作確認のたびに手動でスプライトを元の位置に戻すのは大変なので、スペースキーでリセットできるようにしましょう。

「イベント」から「スペースキーが押されたとき」をドラッグし、先ほど作ったプログラムの隣あたりに配置します。(どこでも構いません)

スペースキーが押されたときをドラッグする

次に「スペースキーが押されたとき」に続くプログラムを作り込んでいきます。

「ネコ」のスプライトの位置を縦横中央にしたいので、「動き」から「x座標を0、y座標を0にする」をドラッグし下にくっつけます。

x座標を0、y座標を0にするをドラッグしスペースキーが押されたときの下にくっつける

「ネコ」のスプライトの角度も戻したいので、「動き」から「90度に向ける」をドラッグしくっつけます。

90度に向けるをドラッグしx座標を0、y座標を0にするの下にくっつける

最後に「ペン」で描かれた線もリセットしたいので、
「ペン」から「全部消す」をドラッグしくっつけます。

これでPCのスペースキーを押すと、全てリセットされるようになりました。

ペンから全部消すをドラッグし90度に向けるの下にくっつける

先に作成したプログラムと並べると今はこのようになっていればOKです。

左側は、をクリックすると線を描くプログラムで、
右側はスペースキーを押すとリセットしてくれるプログラムです。

完成したコード全体

正方形を描くプログラムを作ろう

次は、線を引くプログラムを正方形が描けるように改良します。

とはいっても、同じ長さで動かし、同じ角度で曲がったらできるので、現在の「100歩動かす」と「90度回す」を複製(コピー)してつなぎ合わせていけばできそうです。

「100歩動かす」の右上あたりを右クリックし、出てきたメニューの中から「複製」を選択します。

旗が押されたときのブロックの方にある100歩動かすの左上辺りを右クリックし表示されたメニューから複製をクリック

「複製」されたものをさらに下にくっつけます。

複製されたものをその下にくっつける

4回この動作を繰り返せば正方形になるので、あと2回「複製」して下にくっつけていきます。

同じ作業を2回繰り返す

完成したら、下記図のプログラムになっていればOKです。

現在のコードの全体

動作確認をしてみます。

ステージのをクリックすると、瞬時に正方形が描かれました。

ステージの旗をクリックすると正方形ができる

徐々に図形が描かれるようにする

今のプログラムに「待つ」の動作を加えて、アニメーションのように、ゆっくり描かれるようにしてみましょう。

「制御」から「1秒待つ」のブロックをドラッグし、「90度回す」の下に入れていきます。
「90度回す」は4つあるので、「1秒待つ」も4つその下に入れます。

制御から1秒待つをドラッグし全ての90度回すの下にくっつける。(合計4つ)

これで動作確認してみます。ステージのをクリックすると、線を引いたあとは、少し間(1秒間)を置いてから正方形を描いてくれてます。

ステージの旗をクリックすると少し間を置いてから正方形を描いていく

「繰り返し」でブロックをスッキリ整理する

同じブロックを何度も使っていると、見た目もごちゃごちゃしてわかりにくくなります。そこで「繰り返し」のブロックを使って整理してみましょう。

やり方はいろいろありますが、今回の場合は「繰り返し」のブロックを使うことで、ブロックの数を減らし見通しがすっきりとした状態にします。
また、「繰り返し」のブロックを使うことで、正方形以外の図形も数値を変更するだけで描画できるようになります。

一旦、「ペンを下ろす」の下の「100歩動かす」のブロックをドラッグし全て外します。
一番上の「100歩動かす」、「90度回す」、「1秒待つ」はおいておいて、それ以外は削除します。

ペンを下ろすの下3つをドラッグで外し右においておき、続けて6番目から下もはずして削除する

「制御」から「10回繰り返す」をドラッグし、「ペンを下ろす」の下にくっつけます。

10回繰り返すをドラッグしペンを下ろすのしたにくっつける
正方形なので、「10回繰り返す」のところを「4」にします。
先ほどドラッグで外した「100歩動かす」、「90度回す」、「1秒待つ」を「4回繰り返す」の中に入れます。
10回繰り返すの10を4に変え右に置いておいた3つのブロックの塊を4回繰り返すの中にいれる

左が「繰り返し」のブロックを使う前、右が「繰り返し」のブロックを使ったあとです。
8個のブロックを減らすことができ、すっきりさせることができました。

ブロックの数をへらしつつ同じプログラムが書ける

リセットのプログラムと並べると、現在はこのようになっていればOKです。

ステージのをクリックし、同じように動作するか確認してみてください。

現在のコード全体

正五角形・正六角形も描いてみよう

他の正多角形も描けます。

「繰り返し」のところには、描画したい角の数を入れます。例えば正五角形の場合、「5回繰り返す」とすればよいので、「4回繰り返す」の「4」を「5」に変更します。
角度も変更が必要です。360度を角の数で割ったものを入れます。前途した正五角形の場合、360÷5=72 になるので、「90度回す」の「90」を「72」に変更します。

4回繰り返すを5に変更し90度回すを72に変更

正六角形も同じです。「5回繰り返す」の「5」を「6」に変更します。
角度は、360÷6=60 になるので、「72度回す」の「72」を「60」に変更します。

5回繰り返すを6に変更し72度回すを60に変更する

正六角形が描画できるか、ステージのをクリック動作確認してみます。
無事に意図した通りに描画されました。

ステージの旗をクリックすると正六角形が描画される

まとめ

  • 「ペン」のブロックは拡張機能から追加できる
  • スプライトの動きに合わせて線を描くことができる
  • 「1秒待つ」を使うと、アニメーションのように描画できる
  • 「全部消す」や「位置リセット」でプログラムをきれいに初期化できる
  • 「繰り返し」のブロックでプログラムを整理できる
  • 図形の角の数や角度を変えることで、いろんな正多角形が描ける

今回は、もともといる「ネコ」のスプライトを使いましたが、別のスプライトで描画したり、「歩く」アニメーションと組み合わせたりしても楽しいですよ。

また、「ペンの色」や「ペンの太さ」も変えられるので、「もし〜なら」のブロックと組み合わせて、色が変わる仕組みを作るのもおすすめです。ぜひ、いろいろ試してみてくださいね!