Scratch(スクラッチ)(7)/ボールが動きまわるプログラム・乱数・IF文・オリジナルスプライト作成
目次
ボールが動き回るプログラムを作る
色を変えながらランダムに動き、壁にあたったら跳ね返り、適当なタイミングで自分のスタンプを残してまわるボール・・みたいなものを、乱数とIF文を組み合わせてやってみることにします。
用語のわからないときは以下の記事を参照ください。
オリジナルスプライトの作成
動き回るボールは自分でスプライトを作ってみます。
スプライトを「描く」を選びます。
開いたコスチュームタブで、描画ツールを使って「丸」を描きます。
この丸を残して、デフォルトのスプライトは消しておきます。
動作イメージの確認
こんな感じからスタートします。
スプライトを押すと、壁にあたって動き回りながら、色をかえていき、適当なタイミングでスタンプを残していき、しばらく、動かしたらこんな感じになるのをやります。
スクリプト:全体
全体はこうです。
ずっと・・のループの中で、10歩動かして「もし端についたら跳ね返る」ブロックをおいてます。
これだけで、「背景の中で跳ね返りながら動き回る」が実現できます。
スクリプト:カウンタを変数で定義する
スタンプを押すタイミングをはかるための「カウンタ」は、変数を作るで定義しておきます。
これをカウントアップしていって、カウンターが100を超えたら、カウンターを0に戻して色を変えて、スタンプを押すということをします。
条件文は制御ブロックパレットにある「もし・・なら」ブロックを使います。
スクリプト:条件式を使う
条件式は演算ブロックパレットにある以下のようなブロックを使います。
ドラッグ&ドロップでぺたぺたとはめ込んでいくと、条件式ができます。
今回は、こんな感じです。
スクリプト:乱数を使ってランダムを実現する
乱数も演算ブロックパレットにあります。
こうすると、0から10までの間の数字をランダムに返してくれます。
今回は。
こうすることで、スタンプを押されるタイミングが一定にならないようにしてます。
この乱数を・・歩動かすのところに使うと、スプライトの動きがよりランダムになったりとかするわけですが、今回はしてません。
あわせて、カウンターが100以下の時(つまり、でなければ・・の条件の時)は「色を5ずつ変える」にして、動き回りながらチラチラ色が変わるようにしました。
Scratchの色の扱いについて・・例えば、なぜ数字を変えると色が変わるのか・・がわからない場合は、こちらも見てください。
スクリプト:初期化も用意する
元の状態に戻すスクリプトも用意しておきます。
こうしとかないと、テストとかで動かすたびに、もとに戻すのが面倒ですからね。
単純に、緑の旗が押されたら、背景に描画されているボールを全部消し、カウンターを0にして、ボールを中心に戻してます。
X座標、y座標ともに0が中心である・・というあたりがピンとこない方は、こちらの記事で確認してください。
プロジェクトは公開してます
今回のプロジェクトは以下URLで公開しています。
https://scratch.mit.edu/projects/420671613
動かしたり、中を見るボタンでスクリプトを確認したりして遊んでください。
今回はこんなところで。
scratchの他の記事一覧はこちらです。
ではでは。