【マリオ風アクションゲーム】13.ポーズ機能を追加する

2020年8月20日木曜日

Scratch スクラッチ プログラミング マリオ

t f B! P L

 

スクラッチでマリオ風のアクションゲームを作ってみる(その13)


13.ポーズ機能を追加する




作り方まとめページがあるよ→ 記事まとめ

前回の続きです。 12.POWブロックを追加する





ゲームを一時的に停止させる機能を追加します。

ちょっと休憩してまた再開したいときに便利です。

もどるとすぐに動き出すので「ポーズ」中はゲーム画面がうっすら見えるようにします。



ポーズ機能:
  • pキーを押すとポーズ画面になる
  • 右上の土管をタップするとポーズ画面になる
  • ポーズ画面中の「もどる」ボタンを押すとゲームが再開する




13-1:「キャラクター」の動きを止める


「ポーズ」がONの時は、「キャラクター」が止まるようにします。


「キャラクター」を選択してコードを開きましょう。




新しい変数を作ります。

名前を「ポーズ」にしましょう。




ゲーム開始時は「ポーズ」はOFFなので、最初の値をOFFになるように設定します。


「はたが押されたとき」ブロックに次のコードを追加しましょう。

「(ポーズ)を(OFF)にする」





次に、「ポーズ」がOFFの時だけ「キャラクター」を動かせるようにします。


「(キャラ移動)を受け取った時」ブロックを見つけましょう。

「ずっと繰り返す」ブロックの中身を全部、次のブロックの中に移動します。

「もし「(ポーズ)=(OFF)なら」




これで、「ポーズ」がONになったら「キャラクター」がピタっと止まるようになりました。

次に、「ポーズ」をONにする仕組みを作ります。




「入力」ブロックを見つけましょう。


少し下にある、「もし「マウスが押された」なら」ブロックの上に次のブロックを追加します。

「もし「(p)キーが押された」なら」
    「(ポーズ)を(ON)にする」




実行してみましょう。







13-2:タップでもポーズできるようにする


右上の土管をタップすると「ポーズ」がONになるようにします。


「土管」スプライトを選択してコスチュームを開きます。



右上の土管に「ポーズ」機能のタップ位置が分かるように印を描きましょう。





「キャラクター」スプライトのコードに戻ります。





「入力」ブロックの「もし「マウスが押された」なら」の中の一番下に、次のブロックを追加します。

「もし「「(マウスのx座標)>(170)」かつ「(マウスのy座標)>(100)」」なら」
    「(ポーズ)を(ON)にする」




これで、右上の土管をタップしても「キャラクター」の動きが止まるようになりました。





13-3:「アイテム」と「てき」の動きも止める


「てき」スプライトを選択してコードを開きます。




「(キャラ移動)を受け取ったとき」ブロックを見つけましょう。


「ずっと繰り返す」ブロックの中身を全部、次のブロックの中へ移動します。

「もし「(ポーズ)=(OFF)」なら」





次に、「アイテム」スプライトを選択してコードを開きます。




「(キャラ移動)を受け取ったとき」ブロックを見つけましょう。


「ずっと繰り返す」ブロックの中身を全部、次のコードの中に移動します。

「もし「(ポーズ)=(OFF)」なら」





実行してみましょう。
「pキー」を押すか、右上の土管をタップすると「アイテム」と「てき」も停止します。







13-4:ポーズ画面を表示する


新しいスプライトを作ります。




名前を「停止画面」、x座標とy座標をにします。




「コスチューム」に切り替えましょう。


一つ目のコスチュームの名前を「ポーズ」にします。





画面全体を真っ黒になるようにして、「ポーズ」の文字を描きます。

その下に、「もどる」ボタンを四角と文字で作りましょう





「コード」に切り替えます。


「はたが押されたとき」ブロックをコードの中に入れて、次のブロックを作ります。

「はたが押されたとき」
「(幽霊)の効果を(20)にする」
「隠す」




次に、「(キャラ移動)を受け取ったとき」ブロックをコードに入れて、次のブロックを作ります。


「(キャラ移動)を受け取ったとき」
「ずっと繰り返す」
    「(最前面)へ移動する」
    「隠す」




「隠す」の下に次の「ポーズ」がONになったときのコードを追加します。





これで「ポーズ」画面が表示されるのですが、「てき」が「土管」より前に表示されてしまう不具合が発生してしまうので、コードを直します。


「てき」スプライトを選択してコードを開きます。




「最初の位置に移動する」ブロックを見つけましょう。

一番下にある「(2)層(奥に下げる)」ブロックの(2)を(5)に変えます。





実行してみましょう。
「pキー」もしくは、右上の土管をタップするとポーズ画面になります。







13-5:「もどる」ボタンでゲームを再開する


「停止画面」スプライトを選択してコードを開きます。





「ブロック定義」の「ブロックを作る」ボタンで新しいブロックを作ります。

名前は、「入力」にしましょう。






「bキー」を押しても戻るようにしたいので、「入力」ブロックを次のようにします。

「入力」
「もし「(b)キーが押された」なら」
    「(ポーズ)を(OFF)にする」






「コスチューム」に切り替えます。


新しいコスチュームを追加します。

名前は、「判定用もどる」にしましょう。




コスチュームの「ポーズ」に戻り、「もどる」ボタンの四角を選択して、「コピー」ボタンを押します。





そのあと、コスチュームの「判定用もどる」に切り替えて、「貼り付け」ボタンを押します。





再び、コードに切り替えます。



「入力」ブロックの一番下に、次のブロックを追加します。

「もし「マウスが押された」なら」
    「コスチュームを(判定用もどる)にする」
    「もし「(マウスポインター)に触れた」なら」
        「(ポーズ)を(OFF)にする」
「コスチュームを(ポーズ)にする」





「(キャラ移動)を受け取ったとき」ブロックを見つけましょう。

「表示する」ブロックの下に、「入力」ブロックを追加します。




実行してみましょう。






13-6:やってみよう


ポーズ画面の時だけ、「ポーズ」変数を”大きな表示”で出るようにしてみましょう。


ヒント:
1.「ポーズ」変数を表示する位置を決める


2.「ポーズ」変数の表示を”大きな表示”に変える


3.「停止画面」のコードで「ポーズ」の”表示する”と”隠す”を切り替える





今回作ったのは、こういう感じになるよ →  マリオ風ゲーム:Step13(ポーズ)

プロジェクトが作れなかった場合は、動きだけでも見てみてね。




他の作品記事もよければ読んでみてください。


このブログを検索

ブログをよくする

自己紹介

自分の写真
はじめまして。はるはるです。 中2の息子と小5の娘を抱える2児の父です。今はゲーム会社で働いています。 子供のプログラミング学習に協力できるように教え方を勉強中です。 このブログでは簡単なゲームを作りながら自分が学んだことを少しずつ共有していきます。 情報処理の試験をたまに受けます。 第二種情報処理技術者 ソフトウェア開発技術者 基本情報処理技術者 応用情報処理技術者 twitter: https://twitter.com/amaruchan007

連絡フォーム

名前

メール *

メッセージ *

ブログ アーカイブ

QooQ