Scratch でブレーク可能なループを作成するにはどうすればよいですか? 私は Scratch 2.0 を使用していますが、ループ自体の内部から、ループをブレーク可能にする良い方法が見つかりません。
6 に答える
免責事項:
それを行う完璧な方法はありません。この事実に耐えられる場合は、お気軽に続行してください。
いくつかの方法があります。
とrepeat until
最初の最も単純なものは次のとおりです。
しかし、これは厳密にはスクリプトの一部ではありません。ある値が true を返すまで繰り返すだけです。
カスタムブロックを使用 ( stop this script
)
スクリプト内でこれを行うには、カスタム ブロックを使ったちょっとした裏技を使う必要があります。
好きな名前のカスタムブロックを作成しますが、おそらく「壊れやすいループ」の線に沿っています。その中に、次のスクリプトを作成します。
を使用stop script
することで、現在実行中のスクリプト (Scratch によるとカスタム ブロック) から抜け出すことができます。
とbroadcast and wait
上記と非常によく似た、ブロードキャストと待機の方法を使用することもできます。
この方法を使用しないことを強くお勧めしますが、他のスプライトにブレーク可能なループがある場合は、それぞれの名前を変更する必要があります。これは、多くのスプライトで多くのループを使用した後に面倒になる可能性があります!
(このバグはエディターのバージョン 442 で修正されているため、以下は適用されないことに注意してください。)
ヘルプ!私のプロジェクトは今かなり遅れています!
@foiが気付いたように、コードをフレーム内で実行する必要がある場合は、おそらくrun without screen refresh をオンにしました。残念ながら、Scratch プレーヤーのバグにより、ブロックがアクティブ化された後にプログラムが本質的に壊れてしまいます。どうすればこれを処理できますか?
stop this script
ループ内で画面更新なしのカスタム ブロックを実行するときに使用するのと同じ原則に従います。
forever
ループ内では画面更新を使用しませんが、ターボ モードを使用しているかどうかにかかわらず、インスタント アニメーションを使用できます。例を次に示します。画像が長すぎて埋め込むことができないため、代わりにこちらを参照してください。
の内部または外部に変数をrepeat
作成し、スクリプトを次のように作成できます。
repeat until [[my variable] = [e.g: 1]]
your code
your code
your code
your code
end of repeat until