【アフィリエイト広告を利用しています】
この記事ではScratchを学び続けている中級者の方に向けて、マリオ風ゲームの作り方を解説します。
ステップ4の今回は、プレイヤーと敵キャラクターの当たり判定をするプログラムを作ります。
Scratchの公式サイトはこちら→https://scratch.mit.edu/
以下の記事でマリオ風ゲームの作り方を7ステップに分けて詳しく解説していますので、併せてご覧ください。
》【Scratch中級者向け】マリオ風ゲームの作り方完全解説
このブログが本になりました!
完成品はこちら
まずはステップ4の完成品を見てみましょう。下の画面中央の旗ボタンをクリックしてください。
操作方法は次の通りです。
- 左右の矢印キーでネコを左右に動かし、スペースキーでジャンプします。
- 旗ポールに着いたらゴールです。敵は上から踏むと倒すことができます。
- 敵に当たったり穴に落ちたらゲームオーバーです。
変数とメッセージを準備しよう
始めにステップ4に使う変数とメッセージを準備します。
以下の記事で変数とメッセージを詳しく解説していますので、併せてご覧ください。
》【Scratch入門】変数とメッセージを使ってアニメーションを作ろう
変数は次の1つの変数を作成しましょう。
変数名 | 内容 | 表示 |
---|---|---|
ゴースト加速度 | ゴーストが落ちる時の動きを作る変数 | しない |
メッセージは次の1つのメッセージを作成します。
メッセージ名 | 内容 | 送るスプライト | 受け取るスプライト |
---|---|---|---|
敵を倒す | 敵を倒したとき | ゴースト | ターゲット |
これで変数とメッセージが準備できました!
「ゴースト」のプログラムを改造しよう
続いてステップ3で作成したゴーストのプログラムを改造しましょう。
旗が押されたとき
旗が押されたときのプログラムを改造する箇所は下の通りです。旗が押されたら「ゴースト加速度」を0にします。
クローンされたとき
クローンされたときのプログラムを改造する箇所は下の通りです。「左右移動」ブロックの下に「当たり判定」ブロックを追加します。
「当たり判定」ブロック
「当たり判定」ブロックのプログラムは下の通りです。
ターゲットに触れたとき、ターゲットの「加速度」が0より小さく、かつターゲットのy座標がゴーストのy座標に20を足した数より大きければ、「敵を倒す」メッセージを送ってコスチュームを「ghost-c」にします。
つまり下のようにプレイヤーが落下中で、かつプレイヤーのy座標が敵のy座標と比べて20より大きければ、敵を倒す判定にします。
「ゴースト加速度」を2にしてから、y座標が-180より小さくなるまでy座標を「ゴースト加速度」ずつ変えて「ゴースト加速度」を-1ずつ変えるのを繰り返し、このクローンを削除します。
敵を倒す判定でなければ、すべてのプログラムを止めます。
「ターゲット」のプログラムを改造しよう
最後にターゲットのプログラムを改造しましょう。
「敵を倒す」を受け取ったとき
「敵を倒す」を受け取ったときのプログラムは下の通りです。メッセージを受け取ったら「加速度」を3にします。
これでステップ4のプログラムが完成しました!
まとめ
この記事ではScratch(スクラッチ)を使ったマリオ風ゲームの作り方のステップ4として、プレイヤーと敵キャラクターの当たり判定をするプログラムをついて解説しました。
このマリオ風ゲーム【ステップ4】のScratchプロジェクトのリンクはこちらです。自分オリジナルのゲーム作りにぜひ活用してくださいね。
》マリオ風ゲーム【ステップ4】 on Scratch
ステップ4のプログラムが完成したら、以下の記事をご覧いただきステップ5にチャレンジしてみましょう!
ゲームをやるのも楽しいけど、作るのも楽しい!
もっと本格的なゲームを作ってみたい!
このような好奇心が芽生えたら、お子様の豊かな未来を切り拓く可能性を広げるチャンスです。
近年、プログラミング教育はますます重要視されています。
2020年度から小学校でのプログラミング教育の必修化が始まっており、また大学入試では2025年1月から大学入学共通テストにプログラミングを含む教科「情報」が出題されます。
プログラミングは創造性や論理的思考を育む素晴らしいスキルですが、親御さんがプログラミングを教える専門家でない場合、お子様が学ぶためのサポートが必要です。
その手助けとして、プログラミング教室のご検討はいかがでしょうか?
以下の記事で小学生向けのおすすめプログラミング教室を紹介していますので、合わせてご覧いただければ幸いです。一緒に、子供たちの未来を輝かせる扉を開きましょう!
》【2024年最新版】小学生向けプログラミング教室3選
この記事を最後まで読んでいただき、ありがとうございました!
コメント