"BOKU"のITな日常

62歳・文系システムエンジニアの”BOKU”は日々勉強を楽しんでます

Scratch(スクラッチ)入門(7)/乱数とかIF文(条件式)とか使って動きに変化をつける

 色を変えながらランダムに動き、壁にあたったら跳ね返り、適当なタイミングで自分のスタンプを残してまわるボール・・みたいなものを、乱数とIF文を組み合わせてやってみることにします。

f:id:arakan_no_boku:20200824233948p:plain

 

はじめに

 

Scratch(スクラッチ)の用語を使って説明します。

わからない場合は以下の記事を先に読んでおいてください。 

arakan-pgm-ai.hatenablog.com

 

スプライトを自分で描く

 

今回は「動き回るボール」をテーマにしたいので、ありものの一覧から選ぶのではなく、自分でスプライトを作ってみます。

スプライトを「描く」を選びます。

f:id:arakan_no_boku:20200912002009p:plain

開いたコスチュームタブで、描画ツールを使って「丸」を描きます。

f:id:arakan_no_boku:20200912002216p:plain

この丸を残して、デフォルトのスプライトは消しておきます。

 

こんな感じにしようと思います

 

今回は、こんな感じからスタートします。

f:id:arakan_no_boku:20200929220746p:plain

スプライトを押すと、壁にあたって動き回りながら、色をかえていき、適当なタイミングでスタンプを残していき、しばらく、動かしたらこんな感じになるのをやります。

f:id:arakan_no_boku:20200929220609p:plain

 

スクリプトはこんな感じ

 

ちょっと複雑に見えますが、補足していきます。

まず、全体はこうです。

f:id:arakan_no_boku:20200929223907p:plain

ずっと・・のループの中で、10歩動かして「もし端についたら跳ね返る」ブロックをおいてます。

これだけで、「背景の中で跳ね返りながら動き回る」が実現できます。

今回のポイントですね。

スタンプを押すタイミングをはかるための「カウンタ」は、変数を作るで定義しておきます。

f:id:arakan_no_boku:20200929225020p:plain

これをカウントアップしていって、カウンターが100を超えたら、カウンターを0に戻して色を変えて、スタンプを押すということをします。

条件文は制御ブロックパレットにある「もし・・なら」ブロックを使います。

f:id:arakan_no_boku:20201003010309p:plain

条件式は演算ブロックパレットにある以下のようなブロックを使います。

f:id:arakan_no_boku:20201003010451p:plain

ドラッグ&ドロップでぺたぺたとはめ込んでいくと、条件式ができます。

今回は、こんな感じです。

f:id:arakan_no_boku:20201003010649p:plain

乱数も演算ブロックパレットにあります。

f:id:arakan_no_boku:20201003011137p:plain

こうすると、0から10までの間の数字をランダムに返してくれます。

今回は。

f:id:arakan_no_boku:20201003011311p:plain

こうすることで、スタンプを押されるタイミングが一定にならないようにしてます。

この乱数を・・歩動かすのところに使うと、スプライトの動きがよりランダムになったりとかするわけですが、今回はしてません。

あわせて、カウンターが100以下の時(つまり、でなければ・・の条件の時)は「色を5ずつ変える」にして、動き回りながらチラチラ色が変わるようにしました。

Scratchの色の扱いについて・・例えば、なぜ数字を変えると色が変わるのか・・がわからない場合は、こちらも見てください。

arakan-pgm-ai.hatenablog.com

 

一応、初期化も用意しておきます

 

元の状態に戻すスクリプトも用意しておきます。

こうしとかないと、テストとかで動かすたびに、もとに戻すのが面倒ですからね。

f:id:arakan_no_boku:20200929231451p:plain

単純に、緑の旗が押されたら、背景に描画されているボールを全部消し、カウンターを0にして、ボールを中心に戻してます。

X座標、y座標ともに0が中心である・・というあたりがピンとこない方は、こちらの記事で確認してください。

arakan-pgm-ai.hatenablog.com

 

プロジェクトは公開してます

 

今回のプロジェクトは公開しています。

https://scratch.mit.edu/projects/420671613

f:id:arakan_no_boku:20200929231948p:plain

動かしたり、中を見るボタンでスクリプトを確認したりして遊んでください。

今回はこんなところで。

ではでは。