スクラッチ初心者でも作れる簡単ミニゲーム「エアホッケー」

エアホッケー

今回つくるゲーム

難易度1 out of 5 stars

今回はスクラッチ初心者でも簡単に作れるエアホッケーゲームを作っていきます。簡単ではありますが、変数、座標、当たり判定などゲーム作りの基本要素が含まれるのに加えて、スクラッチの便利なテクニック”ブロック定義”によるプログラムの整理”メッセージ”によるコードの引き継ぎも学習できますので是非チャレンジしてみてください。

まずは実際にゲームをプレイしてみてください。赤は上下の矢印、青はwとzのキーで上下させます。

はじめに

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

【簡単】エアホッケー_素材

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

プッシャーを上下に動かす

まずは、赤と青のプッシャーを上下に移動させられるようにしましょう。まずは上下キーで赤のプッシャーを操作できるようにします。赤プッシャーのスプライトに移動し、以下のようにコードを書きます。

【●●キーが押されたではないまで繰り返す】というのはキーを押しているときだけ作動させる定石コードです。よく使うので覚えるようにしましょう。

同様に青プッシャーのコードも書いていきます。上下キーは赤プッシャーで使ってしまったので、青プッシャーはwキーとzキーを使用します。

これでプッシャーを操作できるようになりました。実際にきちんと動くのか確認してみましょう。

パックを動かす

ではここからパクの動きを作っていきます。

壁で跳ね返るようにする

まずは壁でパックが跳ね返るようにします。パックのスプライトに移動して以下のようにコードを書きます。

スタートというメッセージでパックが出現するようにプログラムしていますが、これは点数が入った時にリスタートできるようにするためです。(メッセージはイベントの一番下にありますのでそこから設定してください)

ポイント:10歩動かすという部分がパックのスピードになります

旗を押すと2秒後に左下から右上にパックが排出され、壁で跳ね返りながら進んでいくのがわかります。

プッシャーでパックを跳ね返す

次にプッシャーでパックを跳ね返していきます。パックのコードを以下のように変更していきます。

プッシャーの赤色に触れたら向きを逆(入射角×-1)にするのですが、その部分を赤が跳ね返すというブロック定義にまとめています。このようにすることでコードが整理されて読みやすくなります。

ブロックの定義は以下のように行います。

赤プッシャーでパックを跳ね返すことができるか実際にプレーして確認してみましょう。

ゴールに入れられて失点する

次に、ゴール(ピンク部分)にパックが入ると失点するようにします
先ほどと同様ブロック定義を使いながら赤が失点する部分を追加していきます。ゴールに触れるとパックが隠れて、スタートのメッセージを送ります。するとまた2秒後にパックが左下から出てくるようになります。これがメッセージを活用することの便利さです。失点するとパックが隠されるので、スタートの時に改めて表示するようにコードを追加します。

スコアを表示する

赤が失点すると青のスコアが入ります。赤スコアと青スコアという変数を作成し、チェックボックスにチェックをすると画面上に表示させます。

画面に表示された変数を右クリックして大きな表示を選択し、vsの左右に配置します
(左が青スコア、右が赤スコア)

きちんと得点が入るか確認しましょう。

同様に青側のコードも書けばエアホッケーゲームは完成ですが、ゲームを面白くできるようすこし応用してみましょう。

応用)パックのスピードを変化させる

これまで書いたコードのままだと、同じスピードでパックが移動するのでとても単調なゲームになってしまいます。実際のゲームでは、何もしなければパックのスピードはだんだんとゆっくりになりますし、プッシャーで押すことでスピードがアップします。

それをコードで再現してみましょう。スピードという変数を作成しコードに埋め込んでいきます。

実際に動かしてみましょう。

応用)プッシャーで跳ね返す角度をランダムにする

次にプッシャーに当たった時に少し反射角度がランダムになるようにすることで、ゲームを複雑にします。角度を前後5度ランダムで変更させます。

応用)効果音をつける

パックが壁で跳ね返る、プッシャーに当たる、失点する、それぞれに効果音を入れることで、ゲームとしてのクオリティーを上げていきます。

青側のコードを書いて完成させる

赤側のコードで納得のいくコードが書ければ、パックのスプライトに青側のコードも同様に書いて完成させます。

すべてのコード

これで完成です。すべてのコードは以下から確認できます。

【簡単】エアホッケー

コメント

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