【2023年】これからブログを始める人へおすすめの書籍

Kissy

【自由研究】Scratchでプログラミング!こんな動きをさせるときはどうするの?

作成: 更新:

Scratchでプログラミングできるいろいろな動き

この記事では、Scratchでプログラミングできる「いろいろな動き」を紹介します。

Scratchでプログラミングをしていて、「Scratchはどんなことができるの?」「こんな動きをさせるにはどうしたらいいの?」と悩むことがあります。

もちろん、実際にScratchで試行錯誤しながら作っていくのも楽しいのですが、煮詰まると結構しんどいです。特に子供の自由研究で一緒にやっていたりすると子供が飽きてきて進まなくなったり。。

この記事では、Scratchでプログラミングできる「いろいろな動き」を紹介します。できることが分かるとプログラミングしたいものがより具体化して進めやすくなります。また、そこから発想して別なアイデアが生まれやすくなります。

紹介する「いろいろな動き」はプログラムも一緒に載せているので、ぜひ参考に楽しくプログラミングしてもらえると嬉しいです!

なお、この記事ではScratchの画面を貼り付けています。多数貼り付けてしまっているせいで、正しく動作しない場合があります。その場合は再度ページを更新してみるか、それでもだめなら、「プロジェクトを見る」のリンクをクリックしてください。Scratchのサイトでプログラムを確認できます。

キャラクターの動き

しゃべる

プロジェクトを見る

操作方法

スペースを押すと「こんにちは!」としゃべります。

プログラム(Pico)

[スペース v]キーが押されたとき [こんにちは!]と[2]秒言う

解説

[スペース v]キーが押されたときを使うとスペースキーを押したときのプログラムが書けます。

このプログラムではスペースキーを使っていますが、ほかのキーに変えることもできます。


上下左右に移動する

プロジェクトを見る

操作方法

を押すと上下左右に移動します。

プログラム(とんぼ)

[左向き矢印 v]キーが押されたとき x座標を[-10]ずつ変える
[右向き矢印 v]キーが押されたとき x座標を[10]ずつ変える
[上向き矢印 v]キーが押されたとき y座標を[10]ずつ変える
[右向き矢印 v]キーが押されたとき y座標を[-10]ずつ変える

解説

「しゃべる」のプログラムを応用して、キーを押したら、とんぼを動かしています。

トンボを動かすには、x座標を[10]ずつ変えるを使っています。x座標は横方向、y座標は縦方向の移動になります。

x座標の値にプラスの値を入れると右方向、マイナスの値を入れると左方向へ移動します。

y座標の値にプラスの値を入れると上方向、マイナスの値を入れると下方向へ移動します。


リアルな移動とジャンプ

プロジェクトを見る

操作方法

を押すと左右に移動します。スペースキーを押すとジャンプします。

プログラム(Pico)

@greenFlag が押されたとき [x速度 v]を[0]にする x座標を[0]、y座標を[0]にする ずっと { もし<[左向き矢印 v]キーが押された>なら { [x速度 v]を[-0.5]ずつ変える }::control もし<[右向き矢印 v]キーが押された>なら { [x速度 v]を[0.5]ずつ変える }::control [x速度 v]を((x速度) * 0.9::operators)にする x座標を(x速度)ずつ変える }::control loop cap
@greenFlag が押されたとき [y速度 v]を[0]にする ずっと { y座標を(y速度)ずつ変える }::control loop cap
@greenFlag が押されたとき ずっと { もし<[地面 v]に触れた>なら { [y速度 v]を[0]にする もし<[スペース v]キーが押された>なら { [y速度 v]を[10]にする }::control } でなければ { [y速度 v]を[-0.5]ずつ変える }::control }::control loop cap

解説

このプログラムは「少しリアル」な移動とジャンプのプログラムです。

先ほどのトンボのプログラム(上下左右の移動)では、キーが押されると押した回数だけ移動するというものでした。これはプログラムは簡単になるもののカクカクした動きしかできません。

このプログラムはこれを改良して、もう少しなめらかに、ジャンプの時は落ちるほどにスピードがアップし、横の移動の時はすぐに止まれず徐々にスピードが落ちるようにしています。

このスピードがだんだん速くなったり、遅くなったりする動きにするために、変数(x速度)(y速度)を使っています。

まず、1つ目の@greenFlag が押されたときは横方向の移動のプログラムです。

トンボのプログラムでは

[左向き矢印 v]キーが押されたとき
を使っていましたが、このプログラムでは、
ずっと{ もし<[スペース v]キーが押された>なら { [y速度 v]を[10]にする }::control }::control loop cap
のように「ずっと」の中で、キーが押されたことを判定しています。こうすることで、なめらかな動きにしています。

また、

[x速度 v]を((x速度) * 0.9::operators)にする
とすることで、だんだんとスピードが落ちる動きをさせています。

2つ目と3つ目の
@greenFlag が押されたとき
はジャンプと落ちるの動きをさせるためのプログラムです。

もし<[地面 v]に触れた>なら { [y速度 v]を[0]にする }::control

で地面の着地の動きをさせています。

もし<[地面 v]に触れた>なら { [y速度 v]を[0]にする } でなければ { [y速度 v]を[-0.5]ずつ変える }::control
で地面の着地と落下の動きをさせています。
もし<[スペース v]キーが押された>なら { [y速度 v]を[10]にする }::control
でジャンプの動きをさせています。

少し難しいので、初めは理解できないかもしれませんが問題ありません。自分のプログラムに組み込んでみたり、改造していくうちに理解できるようになります。


ふわふわと飛ぶ

プロジェクトを見る

操作方法

を押すと左右に移動します。スペースキーを押すとロケットは噴射して空を飛びます。スペースキーを押さないとロケットはだんだん落ちていきます。

プログラム(ロケット)

@greenFlag が押されたとき コスチュームを[rocketship-e v]にする [x速度 v]を[0]にする x座標を[0]、y座標を[0]にする ずっと { もし<[左向き矢印 v]キーが押された>なら { [x速度 v]を[-0.5]ずつ変える }::control もし<[右向き矢印 v]キーが押された>なら { [x速度 v]を[0.5]ずつ変える }::control [x速度 v]を((x速度) * 0.9::operators)にする x座標を(x速度)ずつ変える }::control loop cap
@greenFlag が押されたとき [y速度 v]を[0]にする ずっと { y座標を(y速度)ずつ変える }::control loop cap
@greenFlag が押されたとき ずっと { もし<[地面 v]に触れた>なら { [y速度 v]を[0]にする } でなければ { [y速度 v]を[-0.1]ずつ変える }::control もし<[スペース v]キーが押された>なら { コスチュームを[rocketship-a v]にする [y速度 v]を[3]にする [0.2]秒待つ コスチュームを[rocketship-e v]にする }::control }::control loop cap

解説

「リアルな移動とジャンプ」のプログラムと似ています。違うところは、

もし<[スペース v]キーが押された>なら { [y速度 v]を[3]にする }::control
の部分が
もし<[地面 v]に触れた>なら { [y速度 v]を[0]にする } ::control
の外にあることです。 こうすることで、地面に着地していなくてもジャンプすることができるようにしています。

(それ以外に、コスチュームを変えてロケットが噴射しているように見せています。)


壁で跳ね返る

プロジェクトを見る

操作方法

ボールが自動で動いて、壁にぶつかると跳ね返る。

プログラム(バスケットボール)

@greenFlag が押されたとき x座標を[0]、y座標を[0]にする ずっと { [10]歩動かす もし端に着いたら、跳ね返る }::control loop cap

コスチュームを変える

プロジェクトを見る

操作方法

を押すと上下左右に移動します。移動するときに羽をはばたかせます。

プログラム

[左向き矢印 v]キーが押されたとき x座標を[-10]ずつ変える 次のコスチュームにする
[右向き矢印 v]キーが押されたとき x座標を[10]ずつ変える 次のコスチュームにする
[上向き矢印 v]キーが押されたとき y座標を[10]ずつ変える 次のコスチュームにする
[右向き矢印 v]キーが押されたとき y座標を[-10]ずつ変える 次のコスチュームにする

分身を作る(クローンを作る)

プロジェクトを見る

操作方法

を押すとニワトリが左右に移動します。スペースを押すと卵を産みます。

プログラム(ニワトリ)

[左向き矢印 v]キーが押されたとき x座標を[-10]ずつ変える
[右向き矢印 v]キーが押されたとき x座標を[10]ずつ変える
[スペース v]キーが押されたとき [たまご v]のクローンを作る

プログラム(たまご)

クローンされたとき [にわとり v]へ行く 表示する <[端 v]に触れた>まで繰り返す{ y座標を[-10]ずつ変える }::control loop 隠す

ランダムに降ってくる

プロジェクトを見る

操作方法

プログラムをスタートすると、星が1秒ごとにランダムな場所から降ってきます。

プログラム(背景)

@greenFlag が押されたとき ずっと { [1]秒待つ [星 v]のクローンを作る }::control loop cap

プログラム(星)

@greenFlag が押されたとき 隠す
クローンされたとき x座標を(([-23]から[23]までの乱数) * [10])、y座標を[150]にする 表示する <[端 v]に触れた>まで繰り返す{ y座標を[-3]ずつ変える }::control loop このクローンを削除する

スコアをつける

プロジェクトを見る

操作方法

ランダムに降ってくる星をボールでキャッチします。星1つで1点です。

プログラム(背景)

@greenFlag が押されたとき ずっと { [1]秒待つ [星 v]のクローンを作る }::control loop cap

プログラム(星)

@greenFlag が押されたとき 隠す
クローンされたとき x座標を(([-23]から[23]までの乱数) * [10])、y座標を[150]にする 表示する <[端 v]に触れた>まで繰り返す{ y座標を[-3]ずつ変える もし<[ボール v]に触れた>なら { [スコア v]を[1]ずつ変える このクローンを削除する }::control }::control loop このクローンを削除する

プログラム(ボール)

@greenFlag が押されたとき x座標を[0]、y座標を[-150]にする [スコア v]を[0]にする ずっと { もし<[左向き矢印 v]キーが押された>なら { x座標を[-5]ずつ変える }::control もし<[右向き矢印 v]キーが押された>なら { x座標を[5]ずつ変える }::control }::control loop cap

発射する

プロジェクトを見る

操作方法

を押すと上下に移動します。スペースキーを押すとボールを発射します。

プログラム(車)

@greenFlag が押されたとき ずっと { もし<[上向き矢印 v]キーが押された>なら { y座標を[10]ずつ変える }::control もし<[下向き矢印 v]キーが押された>なら { y座標を[-10]ずつ変える }::control }::control loop cap
[スペース v]キーが押されたとき [ボール v]のクローンを作る

プログラム(ボール)

クローンされたとき [車 v]へ行く 表示する <[端 v]に触れた>まで繰り返す{ x座標を[10]ずつ変える }::control loop [1]秒待つ 隠す

表示する、隠す

プロジェクトを見る

操作方法

スペースキーを押すとえんぴつが表示されます。3秒たつとえんぴつが隠れます。

プログラム(魔法使い)

@greenFlag が押されたとき コスチュームを[wizard-a v]にする
[スペース v]キーが押されたとき [ペンを出す v]を送る
[ペンを出す v]を受け取ったとき コスチュームを[wizard-c v]にする [3]秒待つ コスチュームを[wizard-a v]にする [ペンを隠す v]を送る

プログラム(えんぴつ)

@greenFlag が押されたとき 隠す
[ペンを出す v]を受け取ったとき 表示する
[ペンを隠す v]を受け取ったとき 隠す

追いかける

プロジェクトを見る

操作方法

キーでにわとりが移動します。移動するにわとりをひよこが追いかけてきます。

プログラム(にわとり)

@greenFlag が押されたとき x座標を[100]、y座標を[0]にする ずっと { もし<[右向き矢印 v]キーが押された>なら { x座標を[5]ずつ変える }::control もし<[左向き矢印 v]キーが押された>なら { x座標を[-5]ずつ変える }::control もし<[上向き矢印 v]キーが押された>なら { y座標を[5]ずつ変える }::control もし<[下向き矢印 v]キーが押された>なら { y座標を[-5]ずつ変える }::control }::control loop cap

プログラム(ひよこ)

@greenFlag が押されたとき x座標を[-50]、y座標を[0]にする ずっと { [にわとり v]へ向ける もし<<[にわとり v]に触れた>ではない>なら { [1]歩動かす }::control }::control loop cap

背景の動き

ステージを移動する

プロジェクトを見る

操作方法

を押すと左右に移動します。端まで移動すると次のステージに移動します。

プログラム(ステージ)

@greenFlag が押されたとき x座標を[-178]、y座標を[-131]にする
[左向き矢印 v]キーが押されたとき x座標を[-10]ずつ変える もし<[端 v]に触れた>なら { 次の背景にする x座標を[-178]、y座標を[-131]にする }::control
[右向き矢印 v]キーが押されたとき x座標を[10]ずつ変える もし<[端 v]に触れた>なら { 次の背景にする x座標を[-178]、y座標を[-131]にする }::control

横スクロールする

プロジェクトを見る

操作方法

キーで横に移動します。移動するとステージが横にスクロールします。

プログラム(Pico)

@greenFlag が押されたとき x座標を[0]、y座標を[-120]にする コスチュームを[pico-右 v]にする [移動量 v]を[0]にする
[左向き矢印 v]キーが押されたとき コスチュームを[pico-左 v]にする [移動量 v]を[-10]ずつ変える [移動 v]を送る
[右向き矢印 v]キーが押されたとき コスチュームを[pico-右 v]にする [移動量 v]を[10]ずつ変える [移動 v]を送る

プログラム(背景)

背景1を例にしていますが、座標が異なるだけで他のプログラムは一緒です。

@greenFlag が押されたとき x座標を[0]、y座標を[0]にする
[移動 v]を受け取ったとき x座標を([0] - (移動量))にする

音を出す

ピアノの鍵盤を押したら音を出す

プロジェクトを見る

操作方法

ピアノの鍵盤をクリック(タッチ)すると音が出ます。

プログラム(ドの鍵盤)

ここではドの鍵盤のプログラムを例にしていますが、ほかの鍵盤も出す音が違うだけで他のプログラムは一緒です。

このスプライトが押されたとき コスチュームを[オン v]にする [60]の音符を[0.25]拍鳴らす [0.1]秒待つ コスチュームを[オフ v]にする

おすすめの書籍

Scratchの本はたくさんありますが、ここでは小学3~4年生でもわかりやすい本を紹介します。

Scratchの本は非常にたくさんの本があります。どれを選んでいいかわからなくなるくらい、本当にたくさんあります。いくつかの書籍を見てみると、多くの書籍は文章が多く小学校~4年生には少し文章量が多く、読み通すことが難しいように思います。

その点、「できるキッズ 子どもと学ぶ Scratch プログラミング入門 できるキッズシリーズ」と「親子で学ぶScratch学習ドリル どすこい!おすもうプログラミング」は図解が多く、図の通りにプログラミングすればプログラムが作れるので、理解がしやすくテンポよく進められると思います。最初の一冊目におすすめの書籍です。

参考サイト

Scratch公式チュートリアル

初めてプログラミングをするなら、Scratch公式のチュートリアルもおすすめです。チュートリアルはいくつかのプログラムを書いてある手順通りに進めるだけで、プログラミングできる構成になっています。手順も1ステップ毎に図解で説明されているため、小学校~4年生の方でも一人で進められる内容です。

また、チュートリアルはカード形式になっていて、1つのカードで1つのプログラムができるようになっています(PDFでダウンロードもできます)。また、それぞれ異なるプログラミングの要素を使っているため、カードを1つずつ読み進めることで、プログラミングを学べるようになっています。

教材としても使えるくらいとてもよくできていると思います。書籍を購入前にチュートリアルをやってみるのもおススメです。

まとめ

最後まで読んでいただきありがとうございます。
また読んでくださいませ。
そんじゃーね。

関連記事

SPONSORED LINK
SPONSORED LINK