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

中級

今回つくるゲーム

難易度3 out of 5 stars

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

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

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

はじめに

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

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

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

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

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

弓の動きを確認する

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

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

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

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

弓のコードを書く

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

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

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

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

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

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

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

矢を飛ばす

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

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


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

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

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

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

矢に的に当てる

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

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

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

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

採点する

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

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

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

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

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

矢の数を制限する

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

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

これで完了です!

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

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

すべてのコード

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

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