スクラッチで作品をつくっていると、よくおちいる間違いがあります。自分が作った作品が思い通りに動かないときに、下の何かに当てはまっていないか、確認してみて下さい。
数字が全角で入っている
座標など数字を入れるべきところに、全角数字を入れてしまうと、スクラッチでは「0」と判定されてしまいます。
x座標を240、y座標を180と入れているので、正しい数字が入っていれば画面の右上の方に行くはずです。ところが、下の図では数字が全角ではいっているので「0」と判定されてしまい、画面の中央(x座標が0、y座標が0)に行ってしまいます。
下の図のように、向きなど一部のブロックでは、全角数字を入れようとすると赤色になって間違っていることがわかりますが、ほとんどの場合、全角数字が入ってもエラーとわかるような表示がされないので気をつけましょう。
横に進むはずが、ななめに進んでしまう
下の図のようなコードを書いて、スプライトを左右方向に動かそうを思っているのに、なぜかななめに進んでしまうことがあります。
この例では、プログラムには問題ありません。問題は、スクラッチキャットの耳が画面の上のはしにさわっているために、そこで跳ね返ってしまい、斜め方向に進んでしまいます。
この現象を修正するためには、ネコが画面の端にさわらないような位置に移動させると、左右方向に進むようになります。
音がならない
下のコードでは音がなりません。「〜の音を鳴らす」というコードは、音が鳴っている間に次のコードが実行されます。
このコードでは音がった次の瞬間に「すべてを止める」が動いてしまうため、音がならなくなってしまいます。
音が鳴り終わってから止めたい場合は、下の図のように、「終わるまで〜の音を鳴らす」ブロックを使いましょう。
スプライトが表示されない
下のコードは、1回目に緑の旗を押すと、音が鳴り終わったあとでスプライトが隠されてコードの実行が止まります。
2度目以降にこのコードを実行すると、スプライトがあらわれてきません。これは、一度「隠す」で表示されないようにすると、コードの実行が止まっても、「隠す」「表示する」の状態は更新されません。
そのため、「隠す」で非表示になったスプライトは、2回目以降緑の旗で動かしても、隠れたままになってしまいます。
どこかに「表示する」というプログラムを入れると、この問題は解消します。
スプライトの向きがおかしい
0度に向けたはずなのに、なぜか上を向いてしまう。「〜度に向ける」を使ったあとに、「〜歩動かす」を使うと、思った方向に進まないといったことが起こることがあります。
Scratchの基準となる0度の定義のためにこのようなことが起こります。
実は、スクラッチでは、コスチュームを描いたそのままの状態が0度ではなく、90度になっています。これを基準に向きを決めましょう。
スプライトが思った場所に行かない
下の図では、x座標を0、y座標を0にしているので、スプライトは画面の中心に行くはずですが、画面の左下の方に行ってしまっています。
スプライトの座標は、コスチュームを描いたときの中心の場所の位置を示しています。
描いたものの中心が、この中心に来るようにすると、スプライトを思ったとおりの場所に動かすことができるはずです。
もしがうまく動かない
「もし〜なら」が「ずっと」で囲まれていない場合、緑の旗がおされた瞬間に「もし〜なら」の条件に当てはまっていれば反応しますが、そうでない場合は反応しません。
「もし〜なら」のコードががうまく動かない時は、「もし〜なら」のブロックが「ずっと」で囲まれているかどう確認しましょう。「ずっと」で囲まれていれば、「もし〜なら」の条件に当てはまればいつでも「もし〜なら」の中に入っているコードが動きます。