スクラッチでサッカーPKゲーム

中級

今回つくるゲーム

難易度2 out of 5 stars

今回はスクラッチでサッカーPKゲームを作っていきます。動くキーパーの動きを見ながら狙いを定めてシュートを打ちます。1分間で何ゴールできるかを競うゲームです。角度の考え方が少し難しいですが、複雑なコードを使わずに面白いゲームが作れますので挑戦してみてください。

まずは実際にゲームをプレイしてみてください。スペースキーでシュートが打てます。

はじめに

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

【素材】サッカーPKゲーム

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

スクラッチでサッカーPKゲーム

キーパーを動かす

まずはキーパーの動きを作っていきましょう。キーパーの動きはターゲット(赤い丸)で作り、キーパーはターゲットにあわせて動いていくという考え方になります。その理由は、以下のように遠近法を考えた時に、シカの足に触れたときにキーパーに止められたと判定するのは不自然だからです。このように、当たり判定用にターゲットを作るのはゲーム作りの基本的なテクニックですので是非マスターしてください。

スクラッチでサッカーPKゲーム

ターゲットの動きを作る

まずはターゲットの動きを作っていきますが、その前に、ゲーム管理のスプライトに行って、以下のように🏴が押された時に「ボールセット」というメッセージを送るようにします。ゲーム中に何度も「ボールセット」をできるようにするためです。

スクラッチでサッカーPKゲーム

次に、ターゲットのスプライトに移動して、以下のようにコードを書きます。

スクラッチでサッカーPKゲーム

これで一度🏴を押してみてください。以下のようにターゲット(赤い丸)がゴールの端から端まで動き続けるようになります。

キーパーの動きを作る

次にキーパーの動きです。キーパーはターゲットの上に重なって動くだけです。その時にコスチュームを変化させることで動きをつくります。

さきほど作ったターゲットの幽霊の効果を100にしてから、キーパーのスプライトに移動して、以下のようにコードを書きます。

スクラッチでサッカーPKゲーム

キーパーのコスチュームを見ると、以下のように影がついているのが分かります。このように、キャラクターに影をつけることで、着地しているように見えます。特に奥行きのあるゲームでは大切なテクニックです。また影は地面よりも少し暗い色に設定するのがポイントです。

スクラッチでサッカーPKゲーム

では、🏴を押してみましょう。このようにキーパーが動けば成功です。

シュートをうつ

ボールをける

次にボールをけってシュートを打てるようにします。ボールのスプライトに移動して以下のコードを書きます。蹴る角度という変数を作り、スペースキーを押すとその方向にボールが飛んでいくようにします。

スクラッチでサッカーPKゲーム

蹴る角度をいろいろな数字に変えてプレイしてみてください。蹴る角度をマイナスにすると左側にも飛んでいきます。

ゴールの判定

ボールがターゲットにあたるとキーパーに止められることになりますが、どうなればゴールしたことになるでしょうか。
ゴール判定のスプライトに移動して表示するを選んでください。そうすると、ゴールの上の方に、ゴール判定用のボードが現れます。ここにボールが触れるとゴールしたことになります。

スクラッチでサッカーPKゲーム
スクラッチでサッカーPKゲーム

ゴール判定のスプライトに以下のコードを書きます。そこにはあるけど、表示たくない時に幽霊の効果を使います。

スクラッチでサッカーPKゲーム

ゴール・ミスキックの判定

では、ここからシュートが、ゴールしたのかミスキックだったのかを判定していきます。ボールのスプライトに移動して、先ほど書いたコードを修正していきます。

ターゲットに触れるとキーパーに止められミスとなり、ゴール判定に触れるとゴールとなります。また、ターゲットにも、ゴール判定にも触れられなかったら、枠から外れたということで、それもミスとなります。

スクラッチでサッカーPKゲーム

キーパーに止められた時とゴールした時のボールの反射は以下の通りの考え方となります。

スクラッチでサッカーPKゲーム
スクラッチでサッカーPKゲーム

GOAL・missの表示

次に判定のスプライトに移動して、以下のコードを書きます。

GOLA・missのメッセージを受け取った時にコスチュームが表示され、ボールセットされると消えるようにします。

スクラッチでサッカーPKゲーム

シュートを打ち終えるとキーパーが止まる

シュートを打ち終わったら、GOALでもmissでもキーパーは止まるはずです。
ターゲットのコードに移動して以下のようにコードを追加します。(キーパーの動きはターゲットが操ってるのでした)

スプライトの他のスクリプトを止めるで、キーパーの動きを止めることができます。

スクラッチでサッカーPKゲーム

ここまでできたら、動きを確認しましょう。以下のようにゴール・ミスキックができれば成功です。

ボールを蹴る方向をさだめる

ここまでは、ボールを蹴る向きを数字で入力していましたが、矢印を表示させて、矢印の方向にボールが飛んでいくようにします。

矢印の動きを作る

まずは矢印の動きを作っていきます。ボールがセットされると、振れ幅40、速さ2で矢印が動きます。

振れ幅40 :-40°〜40°の範囲で動く
速さ2       :2°ずつ回る
スクラッチでサッカーPKゲーム

では、🏴を押して動きを確認しましょう。以下のように動けば成功です。振れ幅と速さの値を変えていろいろ試してみてください。

矢印の方向に蹴る

次にボールを矢印の方向に蹴れるようにしましょう。
ボールのスプライトに移動して以下のように蹴る角度矢印の向きに設定するだけです。

スクラッチでサッカーPKゲーム

では動きを確認しましょう。

動きをランダムにする

これで基本的な動きは完成ですが、ゲームとして面白くするために動きをランダムにしていきます。
ランダムにするのは、キーパーの動く速さ矢印の振れ幅矢印の振れる速度、の3箇所です。

スクラッチでサッカーPKゲーム

スクラッチでサッカーPKゲーム

制限時間とゴール数

最後に、制限時間を作り、その間に決めたゴールの数をカウントしていきます。

ゲーム管理のスプライトに移動して以下のようにコードを書きます。

スクラッチでサッカーPKゲーム

ゲーム中という変数を作り、ゲーム中かゲームが終了したかを判断できるようにしています。
ゲーム終了(つまりゲーム中=0)のときにはスペースを押してもボールを蹴れないようにしましょう。

スクラッチでサッカーPKゲーム

ゴール数残り時間にチェックを入れて画面上に表示させて完成です。

スクラッチでサッカーPKゲーム

すべてのコード

これで完成になりますが、効果音を入れたり、ターゲットの大きさを調整して難易度を上げたりして、自分だけのゲームを作ってみてください。

すべてのコードはこちらから確認できます。

サッカーPKゲーム