目標に向けてスノーボール(雪玉)を投げなければならないゲームを作ります。
マウスポインタを使って雪だるまを傾け、マウスボタンを押したまま雪だるまの力を選びます。
ここでは、マウス入力に反応する方法やメッセージの送受信の方法・使い方などが学べます。

【Scratch】雪合戦ゲーム
このプロジェクトでは、目標に向けてスノーボール(雪玉)を投げなければならないゲームを作ります。
マウスポインタを使って雪だるまを傾け、マウスボタンを押したまま雪だるまの力を選びます。
さぁ、【Scratch】「雪合戦ゲーム」でプログラミングをはじめよう。
【Scratch】「雪合戦ゲーム」で学べる知識
- アニメーションスプライトの方法
- マウス入力に反応する方法
- メッセージの送受信の方法・使い方
まずは【Scratch】「雪合戦ゲーム」の工程をかくにん
- 雪玉をつくる
- 雪玉を投げる
- リアルな動き
- ターゲット
1 雪玉をつくる
Scratchスタータープロジェクトを開きます。
オンライン:スタータープロジェクトを開きます。
Scratchアカウントをお持ちの場合は、[ リミックスRemix ]をクリックしてコピーを作成できます。
オフライン:オフラインエディタでスタータープロジェクトを開きます。
Scratchオフラインエディタをダウンロードしてインストールする必要がある場合は、rpf.io / scratchoffにあります。
スタータープロジェクトでは、空白のステージとスノーボール(雪玉)スプライトがあることを確認してください。
「スノーボール(雪玉)」スプライトには2つのコスチュームあります。
通常のコスチューム、そしてスノーボールがどちらの方向を向いているかを示すもの、の2つが含まれています。

まず、プレイヤーが雪玉の角度を変えられるようにしましょう。
この下のコードを雪玉スプライトに追加してください。

できたら緑色の旗をクリックしてプロジェクトをテストします。
マウスボタンを押すまで、雪玉がマウスを追うように見えたら成功です。
次に、雪玉をどれだけ強力に投げるかをプレイヤーに決めさせましょう。
「パワー」という新しい変数を作成します。

「パワー」の表示をステージの一番下、雪玉の近くにドラッグします。
そして「パワー」を右クリックして「スライダー」をせんたくします。

緑の旗がクリックされたときに、新しい変数「パワー」を0に設定するコードを追加します。
「緑の旗」と「0.5秒待つ」の間に追加。

今度は、雪玉のパワーを調節するコードをブロックの一番下にくっつけます。

このコードは、方向を選択した後に、スノーボールのパワーを選択するために、マウスボタンを押し続けなければならないことを意味します。
ここまでできたら、角度とパワーを選ぶことができるかどうかテストしてみましょう。

2 雪玉を投げる
雪玉を投げるブロックを、最後にくっつけます。
「メッセージ1を送って待つ」を一番下にくっつけてください。
余裕がある人は、メッセージを「投げる」に変更します。

次に、実際に雪玉が飛んでいくブロックをつくります。
「メッセージ1(投げる)を受け取ったとき」「コスチュームをsnowballにする」「端に触れた まで繰り返す」「パワー 歩動かす」「隠す」という一連のブロックを、これまでつくった固まりとは別で新しくつくります。
一度テストしてみます。すると、雪玉が勢いよく飛んで、戻ってきません。
そこで、「緑の旗が押されたとき」のブロックの「コスチュームをsnowball-aimにする」の下に「表示する」をはさみます。

では、もう一度テストしてみましょう。
雪玉が飛んでいったあと、もう一度緑の旗を押すと、雪玉がパワーの表示の下に戻ってきてればOKです。
いろいろな角度で、いろいろなパワーで試してみてください。
雪玉を何度も投げられるように、「緑の旗」の下を「ずっと」のブロックで囲みましょう。

3 リアルな動き
これで雪玉ができましたが、もう少しリアルに動かしましょう。
最大のパワーレベルを設定しましょう。
そうすれば、雪玉が激しく投げられないようになります。
パワーが20未満の場合にのみ、パワーを上げる必要があります。
「マウスが押された ではない まで繰り返す」の中のブロックを追加します。
コードを次のように変更してください。

ここまでできたら、一度テストしてみます。
パワーが20を超えないことがわかります。
雪上を飛ぶときにパワーをわずかに下げることで、雪玉を減速させることもできます。
このコードブロックを雪玉の「メッセージ1(投げる)を受け取ったとき」の「パワー 歩動かす」の下にパパワーを-0.25ずつ変える」を追加してください。

ここまでできたら、一度テストしてみます。
雪玉が飛んでいったものの、雪玉が後ろに戻ってきてしまうかもしれません。
そこで、今追加したコードをif文「もし~なら」で囲み、パワーが低下する条件をパワーが0を超えたときのみ、とします。

雪玉を手に持っていて、離せば雪玉は地面に落ちていきます。
これが重力です。
このゲームでも雪玉に重力を加えます。
次のコードを使用して、雪玉を連続的に下に動かし重力を加えます。
先ほど追加した「もし~なら」の上の「パワー 歩動かす」の上に、「y座標を-5ずつ変える」を追加します。
できたら、もう一度テストしてみましょう。
実際に雪玉を投げるときの軌道のように、放物線(ほうぶつせん)を描いて山なりに雪玉が動いていくのが分かります。
4 ターゲット
雪玉のターゲットを追加しましょう。
プロジェクトに別のスプライトを追加してください。
私は、トナカイさんを追加しました。

トナカイ(またはほかのスプライト)のブロックをつくっていきます。
トナカイは、雪玉を当てられたら、「やられたー」と1秒言う、ようにしましょう。

ここまでできたら、テストしてみましょう。
雪玉がトナカイに当たり、トナカイが「やられたー」と言ったらOKです。
次に、ゲームを難しくするためにいくつかのことをしましょう。
まず、プレイヤーが雪玉を投げるたびにトナカイを動かしましょう。
これを行うには、雪玉のブロックで「緑の旗」「ずっと」「パワーを0にする」の下に、「メッセージ2(一投)を送る」を追加します。
これで、トナカイに新しい攻撃がとられようとしていることを知らせます。
【雪玉のブロック】

今度は、トナカイのブロックをつくります。
トナカイは、このメッセージを受け取ったら、次のコードを使って任意の位置に移動します。
【トナカイのブロック】

ここまでできたら、一度テストしてみましょう。
トナカイが、左右に動いたら成功です。
雪玉の前に岩を追加してゲームをもっと難しくします。
スプライトライブラリから「岩」を追加します。

雪玉のブロックを変更し、画面の端に触れたとき、または岩に触れたときに停止するようにできます。
雪玉のブロックで「メッセージ1(投げる)を受け取ったとき」の下にあります「端に触れた まで繰り返す」を「端に触れた か 岩に触れた まで繰り返す」にします。
岩は英語でRocksといいます。

これでゲームは完成です。
お疲れ様でした。
余裕のある人は、背景を変えたり、トナカイを小さくしてもっとゲームを難しくしたり、音を出したりすることにも挑戦してみましょう。
【雪玉のブロック】

【トナカイのブロック】

最初は誰だって初心者です。
やりながら順番に覚えていきましょう。
さぁ、プログラミングをはじめましょう。
0 件のコメント:
コメントを投稿