
Scratch 炎を吐くプログラムをつくる

炎を吐く(火を噴く)プログラムを簡単に作る方法を解説します。
子どものハートをつかめること間違いなし!?
こんなプログラムをつくっていきます。

今回はネコでつくりましたが、恐竜など他のスプライトにも応用できますので、ご安心下さい。
いくつかやり方があると思いますが、今回は2つご紹介します。
1.ネコのコスチュームを編集して実現する方法
1つ目は、ネコのコスチュームを編集して実現する方法です。こちらの方が簡単だと思います。
コスチュームを追加する
まずは、画面左上のコスチュームタブを押してください。

ネコには、2つコスチュームが2つ用意されていますが、ここに炎を追加します。
画面左下の「コスチュームを選ぶ」ボタンを押してください。

コスチュームを選ぶの中から、「Dragon-c」を選びます。

ネコのコスチュームを複製する
さらに、ネコのコスチュームを複製していきます。
コスチューム2で右クリックしてください。
下図のように、「複製」というメニューが出てくると思いますので、押します。

3回複製して、コスチューム5まで作成して下さい。

コスチューム3~5に炎を追加する
複製したコスチューム3~5に、炎を追加していきますが、
まずは、先ほど追加したDragon-Cの炎をコピーします。
下図のように、炎を選択した状態で、赤枠の「コピー」を押します。
(Ctrl(Command)+Cでもできます)

そしてコスチューム3~5に貼り付けていきます。
貼り付けボタンを押し、炎の位置を調整します。

コスチューム4と5は、こんな感じで、炎が徐々に右に進んで、大きくなるようにつくります。


ネコのコードを書く
ここまででつくったコスチュームを生かして、コードを書いていきます。
シンプルに、スペースキーが押されたときに炎を吐くようにします。

旗がクリックされたときはコスチューム1
スペースキーが押されたときにコスチューム2、少し待って、コスチューム3、4、5と変えていき、
さいごにコスチューム2に戻します。
難しくないですよね。
これで完成です。

2.炎を独立したスプライトとしてつくる方法
ネコのコスチュームに炎を足すのではなく、炎を一つのスプライトにして実現する方法です。
こちらの方が自由に炎を動かせるので、1の方法より自由度は高いです。
(反面、炎のコードも書く必要があるので、コード量は多いです)
炎スプライトをつくる
まずは炎スプライトをつくっていきましょう。
1で行ったように、Scratch(スクラッチ)に標準搭載されているDragonのコスチュームである「Dragon-C」の炎部分を活用します。
スプライト「Dragon」を追加する
右下の「スプライトを選ぶ」ボタンを押します。

Dragonを選んで、追加します。

コスチュームを編集する
Dragonのコスチューム画面で、次のことを行います。
- dragon-a、dragon-bを削除する
- dragon-cのDragon部分を削除して、炎だけにする

Dragon部分を選択して、削除します。

炎を中心に移動して名前を変える
炎だけになったら、炎は中心に移動させましょう。

これで炎スプライトは完成です。
名前が「Dragon」のままなので、分かりやすいように「炎」にしておきます。

炎のコードを書く
それでは炎のコードを書いていきます。
今回は、シンプルに、「スペースキー」が押されたときに、炎を吐くようにします。
旗がクリックされたとき
スペースキーが押されるまでは、炎は隠しておきたいので、旗がクリックされたときに、隠しておきましょう。

スペースキーが押されたとき
ネコ(スプライト1)から吐くようにしたいので、
「どこかの場所へ行く」ブロックをつかって、「スプライト1へ行く」をつくります。
そして、表示しましょう。
こんな感じで、ネコの真ん中辺りに炎が表示されましたか?

ネコの口元にくるように、位置を調整します。
X座標とY座標を変えるブロックを使います。

いい感じになりました。
今回はXを25、Yを-5させると上手く行きましたが、この数字はスプライトに合わせて調整して下さい。
さてここまでで、発射準備は完了です。
後は、徐々に右へ移動させながら、大きくしていきます。

30歩動かしながら、40ずつ大きくするようにしてみました。
最後に大きさを100に戻すことと、隠すことを忘れないでください。
何秒待って、どれぐらい進めて、どれぐらい大きくするかは、お好みで調整してみてください。
これで一応完成なのですが、炎の向きがちょっと気になります。
というのも、元のDragonでは、斜め右下に吐くようになっているので、
傾きを付けてあるんです。
ということで、真横になるように調整しますね。
炎の向きを調整する
コスチューム画面で、炎全体を選択して、向きを調整します。

いい感じになりました。

まとめ
以上、炎を吐くプログラムについて、2つの実現方法を解説しました。
今回はシンプルに、スペースキーが押されたときに吐くようにしましたが、
ネコを他のスプライトに変えたり、
ネコが何かことばを発してから発射したり、
炎が他のスプライトに当たったらポイントがついたり、
いろいろとアレンジしてみてください。