複数のプログラム

バージョン

この記事の対象バージョンは2.0です。

概要

Scratchでは特定の条件下で実行する内容を変更することがよくあります。
例えば、「スペースを押したら10歩進む」や
「背景を変更したらBGMを流す」などです。
これらは1つのプログラムで対応できないことが多々あり、
そういった際にはプログラムを複数に分けて対応させます。

1つのプログラムで対応できない例

以下の実行内容と命令のように1つのプログラムの流れで実行できないケースがあります。

実行内容


命令

scratch_0063

原因

このプログラムでは猫に対して二つの動きを持たせようとしています。
まず「5秒間隔で10歩動く」次に「スペースキーを押したら15度回転する」です。
前者は問題なく動作しますが、後者は問題があります。
それは、スペースを押しても15度回転しない時があることです。
これはプログラムが前者の5秒間隔歩かせていることが原因となっていて
5秒待っている間、プログラムは次に進みません。
なので、5秒経過後にプログラムが動き出す一瞬の間しか
スペースキーによる回転が有効にならず、スペースを押しても回転しないのです。

解決策

上の例の問題は待つ命令のせいでスペースキーの入力を
待っている命令が動作しないことにあります。
そこで、プログラムを分割して「5秒間隔で10歩動く」と
「スペースキーを押したら15度回転する」を分けます。

分け方

分け方は簡単で新しい命令の流れをスクリプトエリアに作成します。

scratch_0064

このように命令を二つに分けることで、いつでもスペースキーによる
回転が行われるようになりました。