スクラッチで棒人間ゲーム(アーチェリー)の作り方

ゲーム作り

今回つくるゲーム

難易度3 out of 5 stars

今回はスクラッチで棒人間のアーチェリーゲームを作っていきます。ドラッグで狙いを定めて的を射ます。どうやって弓の向きを定めるのか、どうやって矢を飛行させるのか、どうやって的に当たった場所で得点をつけるのか、様々なゲームづくりの要素が入っています。是非マスターして、ゲーム作りに活かしてください。

まずは実際にゲームをプレイしてみてください。画面のどこかをドラッグして引っ張って弓矢を放ち的の中心を狙ってください。

似たゲームにバスケットボールフリースローがあります。こちらもあわせてチェックしてください。

はじめに

まず、以下をリミックスしてください

棒人間ゲーム(アーチェリー)_素材

こちらにはゲームを作るのに必要な素材が揃っています。

弓の向きとパワーを調整する

弓の動きを確認する

まずは弓の動きを確認しましょう。
今回用意しているプレイヤーと弓のスプライトは同じ位置に同じ大きさで配置するとピシッと合うようになっています。(逆に言うと、弓矢を持ったプレイヤーを2つのスプライトに分解していると言うことです)

同じ位置に配置したら、弓のスプライトの向きを変化させてみましょう。
以下のように弓の向きを調整できるのがわかります。

次に、弓を引く動きを確認してみましょう。以下のようにコスチュームを順番に変えていくことで弓を射ているように見えるのがわかると思います。

弓のコードを書く

では、弓のプログラムを作っていきます。以下のコードを書いていきます。

画面上のどこかをクリックしてドラッグして引っ張ることで矢の発射の向きと勢いを調整し、クリックをはなすと弓が放たれます。引っ張りの仕組みは以下の通りとなっています。

では、実際にドラッグして引っ張ってみましょう。以下のように動けば成功です。

書き忘れていましたが、プレイヤーにも以下のコードを書いて誤ってずれないようにしておきましょう。

矢を飛ばす

弓の動きまではできたので、それに連動した矢の動きを作っていきましょう。矢のスプライトに移動して、以下のコードを書きます。


発射の勢いが10で弓の向きが50の時の矢の動きは以下の通りとなります。

ポイント①:上向きの勢いは重力でだんだん小さくなる
ポイント②:横向きの勢いは空気ていこうでだんだん小さくなる
ポイント③:矢の向きは上向きの勢いが0になったときに90°になるようにする

実際に矢を射ってみましょう。以下のように動けば成功です。

矢に的に当てる

ここから、矢を的に当てていきます。
的をランダムに表示させて矢が当たった時に的中=1にしましょう。
※ただし、矢のお尻が的に当たって的中にならないように、矢が的より左側にあるときは的中にならないようにします。

的中=1の時に、矢がささるようにするため、矢のスプライトに移動して以下のようにコードを変更・追加します。これで的に当たったらそこで飛行が止まって、コスチュームも刺さるに変わります。

採点する

次に採点を行なっていきます。採点は矢の先端が中心からどれだけ離れているかで判定します。中心からの距離と点数は以下のとおりです。矢先端のy座標を求めることで、より正確なゲームとなります。

では、的のコードに移動して、以下のコードを追加します。

これで、採点は完了ですが、矢の台を的の後ろに配置するようにしましょう。この台がないと刺さる位置によっては空中に矢が刺さってしまうことがあります。細かなテクニックですが、こういうことの積み重ねが品質の高いゲーム作りにつながります。

矢の数を制限する

最後に使える矢の数を10本に限定していきます。ゲーム管理のスプライトに以下のコードを書いていきます。

これで完了です!

最後に、矢が的に当たると、的がバイーンとすこし揺れる動きをつけておきましょう。
的のコードに以下を追加します。

すべてのコード

すべてのコードはこちらから確認できます。自由にリミックスしてください。

棒人間ゲーム(アーチェリー)

タイトルとURLをコピーしました