「〇〇ずつ変える」と「〇秒待つ」
チャレンジ#1では、[(1)秒でx座標を()に、y座標を()に変える]ブロックを使ってスプライトのアニメーションを作成しました。このチャレンジ#2では、[x座標を()ずつ変える]と[y座標を()ずつ変える]ブロックと[()秒待つ]ブロックを使って、アニメーションを作成します。
〇〇ずつ変える
- チャレンジ#1で作成したプロジェクトをブラウザで開きます。
- まずは下図のように、コードブロックを切り離します。上から4つめのブロックにカーソルを合わせるとカーソルが手のひらに変わるので、そのときにクリックしてドラッグすると、下3つのブロックが切り離せます。
- スクリプトに[x座標を()ずつ変える]ブロックを追加します。このブロックには初めから10が入力されています。これはこのコードの1回の実行で、右に10だけ移動する、ということです。10だけ変化しても気づきづらいので10を100に変えます。
- 同様に、[y座標を()ずつ変える]ブロックを追加し、10を100に変えます。
- 緑の旗の実行ボタンをクリックします。Dinosaur2は右上に瞬間移動したように見えます。
これは具体的に言うと、Webブラウザでスクラッチのサイトを開き、前のプロジェクトをスクラッチのサイトに保存した場合は、画面右上のフォルダアイコンのクリックで表示される[私の作品]から読み込み、プロジェクトのファイルを自分のPCに保存した場合は、そのファイルを[ファイル]->[Load from your computer]から読み込む、ということです。具体的な手順は2-2 チャレンジ#1の最後で述べています。

切り離したブロックはイベントブロック(今の場合なら[緑の旗が押されたとき])につながれていないので、プログラムの動作には影響しません。これは、イベントブロックにつながれていないと、コードは何も行わない、ということです。
切り離したコードはそのまま置いておくこともできますし、削除することもできます。削除するには、全体をドラッグして、左側のコードメニューの上でドロップします。
Dinosaur2のx座標は-162、y座標は-81なので、それぞれに100が足されて、新しい座標は(-62, 19)になります。

ここでのポイントは、まずDinosaur2のx座標に100を足してから、その後Dinosaur2のy座標に100を足しているのに、Dinosaur2は右に移動してから上に移動しているように見えないということです。チャレンジ#1では1秒という時間をかけて移動していたので移動のアニメーションが見られたのですが、今のコードでは時間をかけていないので高速すぎて目に見えないのです。
〇秒待つ
Dinosaur2の動きが目に見えるように、時間を挿入します。
- [x座標を()ずつ変える]と[y座標を()ずつ変える]ブロックをドラッグして、切り離します。
- [コード]タブの[制御]から[(1)秒待つ]ブロックをドラッグして、[x座標を()、y座標を()にする]の下に吸着させます。
- その下に>[x座標を()ずつ変える]ブロックを接続します。しかし2つのブロックがつながっているので、下の>[y座標を()ずつ変える]を下方向にドラッグして切り離します。
- もう一度[(1)秒待つ]ブロックをドラッグして[x座標を()ずつ変える]に吸着させます。
- その下に、切り離しておいた[x座標を()ずつ変える]を吸着させます。
- 緑の旗ボタンをクリックしてプログラムを実行します。Dinosaur2は右へ行ってからその後上に移動します。
[(1)秒待つ]ブロックを挿入するということは、下のブロックにすぐには進まず、上のブロックの状態を1秒間つづける、ということです。上図のコードブロックとその働きの説明を読んで、どうしてこの動きになるかを考えてみてください。
完成させる
では、Dinosaur2の向きを左に変え、ステージの左端に戻すコードを考えてみましょう。コードブロック自体は前に使ったことのあるものです。
下図はその一例です。

[x座標を(-100)ずつ変える]ブロックは、1回の実行で100だけスプライトを左に移動させます。
覚えておくと役立つこと
コードの作成で大切なことは、さまざまな方法を試してみることです。思ったようにいかなかったときには、変更を加えて何度もテストします。たとえば上のスクリプトでは、[(1)秒待つ]ブロックを挿入する位置を変えたり挿入しなかったりすると動作が変化します。
コードブロックはコードメニューの中にあるとき(つまりドラッグする前)、クリックすると、そのコードブロック単体での動作を確認することができます。数値も入力できます。
プログラムが大きくなってくると、スクリプトエディターに複数のスクリプトが存在するようになります(1つはスプライトA用の、もう1つはスプライトB用の、というように)。スクリプトエディターのスクリプトはそれを直接クリックすると、プログラムでのそのスクリプト部分だけを実行することができます。
Scratchは、MITメディア・ラボのライフロング・キンダーガーテン・グループの協力により、Scratch財団が進めているプロジェクトです。http://scratch.mit.eduから自由に入手できます。