スクラッチの手引き

スクラッチでカーソルキーを使って「ネコ」が動くアニメーションを作ろう

最終更新日 2025年5月6日 by toytune

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

はじめに

今回は、パソコンのカーソルキー(矢印キー)を使って、スクラッチの「ネコ」スプライトが上下左右に動くアニメーションを作っていきます。

このアニメーションは、今後さまざまなプログラムに発展させていく予定です。

このサイトではこれまでにも「ネコ」のスプライトを使ったアニメーションをいくつか紹介していますので、あわせてチェックしてみてください。

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

まずは基本のプログラムを作ろう

まずは、新規でプロジェクトを作り、続けて基本のプログラムを作っていきます。

このネコの「スプライト」に対してアニメーションを作成していきたいので、
ネコの「スプライト」をクリックしておきます。

スプライトの選択

プログラムが動く合図となるブロックをまずは入れていきたいので、
が押されたとき」のブロックをドラッグします。

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

最初の「ネコ」のスプライトの状態は、ステージ中央にしたいので、
「x座標を0、y座標を0にする」をドラッグして、「が押されたとき」のブロックの下にくっつけます。

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

今回作りたいプログラムは、カーソルキーでアニメーションは継続的におこないたいものになるので、「ずっと」のブロックをドラッグして続けてくっつけます。

このあとのアニメーションで使うブロックは、この「ずっと」の中にドラッグしていくことになります。

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

「右向き矢印キー」でネコを右に動かそう

次に「どのカーソルキーが押されたか」を判定するのに使う「もし〜なら」のブロックをドラッグし、先ほどの「ずっと」のブロックの中に入れます。

もし〜ならをドラッグし、ずっとの中に入れる

「もし〜なら」の中に条件を入れます。
ここではどのカーソルキーを押されたかを判定したいので、
「スペースキーが押された」をドラッグして、「もし〜なら」の「〜」のところに入れます。

スペースキーが押されたをドラッグし、もし〜ならの〜に入れる

今回は「スペース」は使わないので、クリックしてドロップダウンメニューを開き、
「右向き矢印」をクリックで選択します。

スペースキーが押されたのスペースをクリックし右向き矢印に変更する

右に動かす場合、「ネコ」のスプライトを右に向けたいので、
「90度に向ける」のブロックを「もし右向き矢印キーが押されたなら」の中にドラッグします。

90度に向けるをドラッグし、もし右向き矢印キーが押されたならの中に入れる

今度はいよいよスプライトを動かすブロックを入れていきます。
「10歩動かす」のブロックをドラッグして、「90度に向ける」のブロックの下にドラッグします。

もっと早く動かしたいなら「10」の部分の数値を「20」とか大きいものに変更してみてください。ここでは「10」のままで進めます。

10を動かすをドラッグし、90度に向けるの下にくっつける

これでカーソルキーで「ネコ」のスプライトが右に動くかを試してみます。

をクリックしてから、パソコンの「右向き矢印キー」を押してみます。
押している間、すべるように「ネコ」のスプライトが右に動いたら成功です。

アニメーションはまだ作ってないので、今のところはこれで成功になります。

ステージの旗をクリックすると、ネコのスプライトが右にすべるように動く

歩いているようなアニメーションを追加しよう

ネコが動いているときに、パラパラ漫画のようにアニメーションさせるには、「コスチューム」を切り替えるのがポイントです。

「見た目」のところから「次のコスチュームにする」をドラッグし、
「90度に向ける」の上にくっつけます。

次のコスチュームにするをドラッグし、90度に向けるの上にくっつける

このままでも良いのですが、「コスチューム」の切り替えが早すぎるので、「1秒」待つをドラッグして、「10歩動かす」の下にドラッグします。
できたら今度は「1」のままでは遅いので、「0.08」へ変更しておきます。

1秒待つをドラッグし、10歩動かすの下にくっつける。10歩動かすの10を0.08へ変更する

できているか動作確認していきます。

をクリックしてから、パソコンの「右向き矢印キー」を押してみます。
歩くように「ネコ」のスプライトが右に動いたら成功です。

ステージの旗をクリックすると、ネコのスプライトの見た目が交互に変わりながら動く

左に動かしてみよう

ここまで作ってきたものを変更して、左にも動くかを試してみます。

どのキーを押したかの条件となる「右向き矢印キーが押されたら」の「右向き矢印」のところをクリックして、ドロップダウンメニューを開きます。
左へ動くことを試したいので、「左向き矢印」を見つけクリックで選択します。

右向き矢印キーが押されたの右向き矢印をクリックして左向き矢印へ変更する

「ネコ」のスプライトの向きも左向きにしたいので、「90度に向ける」の「90」のところをクリックして、「-90」に変更し座標の向きを変更します。

90度に向けるの90を-90へ変更する

「左向き矢印キー」を押すと左に動くか動作確認していきます。

をクリックしてから、パソコンの「左向き矢印キー」を押してみます。
左に歩くように「ネコ」のスプライトが動くとは思いますが、残念なことに「ネコ」のスプライトが逆さまになると思います。

今度は逆さまにならないように修正していきます。

ステージの旗をクリックし左向き矢印を押すとネコのスプライトが逆さまになる

ネコが逆さまにならないようにする

修正といっても簡単で、ブロックを1つ追加するだけです。

「x座標を0、y座標を0にする」のブロックの下に「回転方法を左右のみにする」ドラッグしてくっつけます。これだけでOKです。

回転方向を左右のみにするをドラッグし、x座標を0、y座標を0にするの下にくっつける

できているか動作確認していきます。

をクリックしてから、パソコンの「左向き矢印キー」を押してみます。
逆さまにならず、歩くように「ネコ」のスプライトが左に動いたら成功です。

ステージの旗をクリックし、左矢印を押してもネコのスプライトは逆さまにならず左へ動く

「ブロック定義」で処理をまとめてスッキリさせよう

条件のところの「〜向き矢印キーが押された」と「〜度に向ける」の部分を変更すると、
押したカーソルキーと進行方向を設定できることがわかりました。

上下左右それぞれを設定すると、同じようなものを4つ作ればよいのですが、非常に長いブロックになってしまいます。この時に便利なのが「ブロック定義」です。
数字を変えるだけであとの処理は同じものは、この「ブロック定義」にまとめてしまって、使い回しできるようにします。

「次のコスチュームにする」の部分をドラッグすると、その下に続くブロックもくっついた状態でドラッグできるので、一旦外に出します。

次のコスチュームにするの部分をドラッグし、その下に続くブロックもくっついた状態でドラッグされ、一旦外に置いておく

この一旦外に出したブロックを「ブロック定義」にまとめて使いまわせる状態にしていきたいと思います。

ブロックを使い回すようにしていくには、「ブロック定義」のところで「ブロックを作る」のボタンをクリックします。

ブロックを作るのボタンをクリック

「ブロックを作る」のモーダル画面に切り替わります。

ブロックを作るのモーダルが表示される

何でも良いのですが、「ブロック名」となっているところをわかりやすく「アニメーション」という名前に変更しておきます。(わかりやすいものであれば何でもいいです)

ブロック名のところをアニメーションに変更する

次に「引数」というものを使って、進行方向を変えていきたいので、「引数を追加」というところをクリックします。

クリックすると「number or text」というものが追加されます。
この「number or text」というところをわかりやすいものへ変更できますが、今回はこのままでいきます。

右下の「OK」をクリックして、元の画面に戻ります。

引数を追加、数値まはたテキストをクリックする

元の画面に戻ると、「定義アニメーションnumber or text」という赤いブロックが表示されています。

定義アニメーションnumber or textのブロックが表示されている

この赤いブロックと、外に出したブロックをドラッグしてくっつけます。

外に出したブロックと定義アニメーションnumber or textをくっつける

くっつけたあと、赤いブロックの中にある「number or text」の部分をドラッグして、
「-90」のところに入れます。

これで任意の数字を入れることで進行方向を決まるブロックができあがりです。
一旦外に出したブロックを使いまわせる状態になりました。

定義アニメーションnumber or textのnumber or textをドラッグして、-90度に向けるの-90のところに入れる

上下左右すべてに対応させよう

カーソルキーの条件を決めるブロックを4つ作りたいので、「複製」の機能を使います。
「もし左向き矢印キーが押されたなら」の「なら」の辺りを右クリックすると「複製」が表示されるのでクリックします。

もし左向き矢印キーが押されたならの右端を右クリックし表示されたメニューから複製をクリック

複製されたブロックを「ずっと」のブロックの中に入れていきます。
あと2回この作業を繰り返して、合計4つにします。

複製したものをもし左向き矢印キーが押されたならの下にくっつける

下記画像の左側のように、4つ「もし左向き矢印キーが押されたなら」のブロックができたら、矢印キーをそれぞれ変更していきます。

ここでは上から、下記の矢印キーに変更していきます

  • 「上向き矢印」キーが押された
  • 「下向き矢印」キーが押された
  • 「右向き矢印」キーが押された
  • 「左向き矢印」キーが押された
同じ作業をあと2回繰り返す。できたら、左向き矢印のとこをそれぞれ、上から、上向き矢印、下向き矢印、右向き矢印、左向き矢印へ変更する

矢印キーがすべて変更できたら、それぞれブロックを追加していきます。

「ブロック定義」のところを確認すると、「アニメーション」というブロックが追加されています。これは先ほど「ブロック定義」で作成した「アニメーション」のブロックです。
このブロック1つでアニメーションできるものになっているので、
「もし〜向き矢印キーが押されたらなら」のブロックの中にそれぞれ入れていきます。

アニメーション〜をドラッグし、もし上向矢印キーが押されたならに入れる。他のもし〜キーが押されたならも全てアニメーション〜をドラッグで入れる

「アニメーション」の横の空白箇所に対応する進行方向の数字を入れていきます。
この空白の部分は「引数」のところになり「number or text」のところにあたります。

「引数」は進行方向の座標の数値を入れていくことになりますが、
ここでは上から次の数値を入れていきます。

  • 0
  • 180
  • 90
  • -90
アニメーション〜の〜を上から0、180、90、-90と入力する

できているか動作確認していきます。

をクリックしてから、パソコンの矢印キーを上下左右いろいろ押してみます。
上下左右、矢印キーの方向に「ネコ」のスプライトがアニメーションしながら動いたら成功です。

ステージの旗をクリックすると、押されたカーソルの方向にネコのスプライトが動く

今回作った全体のブロックは下記の画像になります。
ブロック定義を使うことでスッキリ作ることができています。

今回作成したブロックの全体

まとめ

  • 「x座標を0、y座標を0にする」で初期位置をリセット
  • カーソルキーの向きに合わせてスプライトの向きを変える
  • 「回転方法を左右のみにする」でネコの上下反転を防ぐ
  • 「次のコスチュームにする」で歩くアニメーションを実現
  • ブロック定義」と「引数」を使って、共通処理をスッキリまとめる

一見シンプルなアニメーションでも、いろいろな工夫が必要でしたね。
同じような処理はブロック定義でまとめることで、わかりやすくて読みやすいプログラムにすることができます。

今後はこのアニメーションを使った、さらに楽しいプログラムも紹介していく予定です。お楽しみに!