BOKUのブログ

ジャンルにこだわらず、ノートの感じで書いてます

Scratch(スクラッチ)(7)/色を変えながら跳ね返り動き回るボール(乱数・IF文・オリジナルスプライト作成)

f:id:arakan_no_boku:20200824233948p:plain

乱数・IF文・オリジナルのスプライトの作成をやってみます。サンプルとして、色を変えながらランダムに動き、壁にあたったら跳ね返り、適当なタイミングで自分のスタンプを残してまわるボール・・みたいなプログラムを作ってみます。用語のわからないときは以下の記事を参照ください。 

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

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

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

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

f:id:arakan_no_boku:20200929231948p:plain

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