【Scratchで簡単なゲーム作成編④】条件を満たすとアイテムの種類を変化する機能をつける


2020/09/19
【Scratchで簡単なゲーム作成編③】スプライトのコピーとゲーム機能の拡張
【Scratchで簡単なゲーム作成編⑤】ゲームの状態を伝えるセリフ枠を作成する

ゲームを遊んでいるプレーヤーからすると、アイテムの種類が増えるとグッと楽しくなります。今回は条件の設定でアイテムの種類を変化させる方法のプログラミング方法を深堀してみましょう。

なお、今回までで紹介したプログラミングテクニックで完成品は以下のようなゲームに仕上がる予定です。


合同会社タコスキングダム|タコキンのPスクール【Pスクール厳選】Scratchを学べるオンライン&駅前プログラミングスクール5選

表示条件の設定

前回の記事・
「Scratchで簡単なゲーム作成編③ ~ スプライトのコピーとゲーム機能の拡張」までのプログラムを使って、更に機能を盛り込んでいきましょう。

プログラムは
Scratchのウェブページのココから利用できます。

合同会社タコスキングダム|タコキンのPスクール
【Scratchで簡単なゲーム作成編③】スプライトのコピーとゲーム機能の拡張

作成中のScratchゲームでエサ置き場の増やし方(スプライトのコピー追加)のテクニックを解説します。

今回の目的はゲームの条件を満たすと新しい食べ物が選択できるような機能をつけることです。最初に条件を決めましょう。

とりあえず
りんご5個とタコ3個でスイカが出現して食べ物の選択画面から使えるようにしてみます。


合同会社タコスキングダム|タコキンのPスクール【Pスクール厳選】Scratchをしっかり学ぶためのオススメ書籍まとめ

元にするスプライトをコピーして使い回す

アイテムの出現する条件を決めましたので、まずは元あったりんごスプライトをコピーして、スプライト名をスイカに変更しておきます。

合同会社タコスキングダム|タコキンのPスクール

とりあえずスイカのスプライトを選択モードで画面に現れるように、雑に仮置きしておきます。

合同会社タコスキングダム|タコキンのPスクール

たべもののスプライト(りんご・タコ・スイカ)のクリックされた時のブロックが長くなったきたので、共通部分を
定義ブロックでくくり出します。

各スプライトにこの定義ブロックをコピーして使い回すことで、今後食べ物の種類を増やしても、定義ブロックの引数(スプライトの名前)を変えるだけで済みます。

合同会社タコスキングダム|タコキンのPスクール


合同会社タコスキングダム|タコキンのPスクール【Pスクール厳選】Scratchを学べるオンライン&駅前プログラミングスクール5選

条件を満たした時にだけ表示させる

コピーした直後のスイカスプライトはそのままだとゲーム開始から表示されてしまいます。

そこで、
たべたりんごのスコアとたべたタコのスコアを使って、以下のようにブロックを修正します。

合同会社タコスキングダム|タコキンのPスクール

もし〜ならブロックを利用することで、食べ物選択画面にりんご5個とタコ3個でスイカが出現ができるようになりました。

余談〜デバッグの方法

今回のように、変数がある条件を満たすと、ゲームの状態が変化するような機能を盛り込む場合、その条件になるまで気長に待ってはいられないと思います。

すぐに条件を満たしているか確認するには、スプライトのキャンバスに変数を代入するブロックを置いて、ゲームをスタート後の好きなタイミングでそのブロックをクリックすると良いでしょう。

合同会社タコスキングダム|タコキンのPスクール


合同会社タコスキングダム|タコキンのPスクール【Pスクール厳選】Scratchをしっかり学ぶためのオススメ書籍まとめ

エサ置き場にスイカを置く

このままではスイカを選んでも皿の上におけないので、エサ置き場のブロックコードを手直ししていきます。

おきばしょ1からおきばしょ5までのエサ置き場のスプライトに、新たにスイカのコスチュームを追加します。

合同会社タコスキングダム|タコキンのPスクール

また各エサ置き場のブロックコードで、
たべもの#?のメッセージイベントのブロックへ、スイカのコスチュームになるように、それぞれ修正します。

下の図は例として
たべもの1?のブロックの部分の修正を行ったときのものです。

合同会社タコスキングダム|タコキンのPスクール

他の
たべもの2?からたべもの5?の各イベントにも同じように修正してください。

これでエサ置き場にスイカを置けるようになりました。

合同会社タコスキングダム|タコキンのPスクール


合同会社タコスキングダム|タコキンのPスクール【Pスクール厳選】Scratchを学べるオンライン&駅前プログラミングスクール5選

スコアボードにスイカを追加する

スイカは追加できるようになりましたが、スコアボードに食べたスイカの数を表示できるようになっていないので、プログラムを変えていきます。

まず
りんごのかずタコのかずスプライトをコピーして、スイカのかずを作成します。

合同会社タコスキングダム|タコキンのPスクール

このスプライトのコスチュームをスイカの画像に変えて、コスチューム名を
スイカに直します。

その後、大体の位置でよいのでスコアボード上に配置させておきます。

では、
スイカのかずのスプライトのブロックコードも修正します。

コピーしたブロックの中で、食べ物の名前の付いた変数やイベント名をすべて
スイカの付くものに取り替えます。

合同会社タコスキングダム|タコキンのPスクール

後は、
スコアボードスプライトのブロックコードを修正して、スイカを食べたときの得点の付け方を追加します。

ゲーム開始時の変数
たべたスイカを初期化し、たべた1からたべた5までのメッセージイベントのブロックに、スイカを食べたときの処理を追加します。

合同会社タコスキングダム|タコキンのPスクール

なお、スイカの得点は+20と設定しています。

スプライトの位置の微調整

先程までは、スイカのかずスプライトの位置を大体の場所に表示していましたが、ちょうどいい位置決めを行いたい場合、スプライトの表示位置の設定はゲームを走らせながら、x座標とy座標を調整するのがよいと思います。

合同会社タコスキングダム|タコキンのPスクール


合同会社タコスキングダム|タコキンのPスクール【Pスクール厳選】Scratchをしっかり学ぶためのオススメ書籍まとめ

条件を満たしたときにスコアボードに表示する

最後にスコアボードにスイカのかずスプライトを表示するタイミングを上で説明したように、たべたリンゴ5個以上かつたべたタコ3個以上の条件で、もし〜ならブロックを使って処理を囲みます。

合同会社タコスキングダム|タコキンのPスクール

これで条件を満たさない場合には、
スイカのかずスプライトはスコアボードから隠れているようにすることができました。

合同会社タコスキングダム|タコキンのPスクール

以上で、エサ場における食べ物の種類が増やすことが可能となりました。

スイカを出すまでの機能を盛り込んだプログラムは
ココから利用できますので、これまでの内容で疑問があったら参考ください。

おまけの機能〜得点の表示

食べ物の種類も増えたので、選択画面に表示される食べ物の下に各得点を表示できるようにしました。

合同会社タコスキングダム|タコキンのPスクール

これで食べ物が何点入るかをプレイヤーに教えることができます。


合同会社タコスキングダム|タコキンのPスクール【Pスクール厳選】Scratchを学べるオンライン&駅前プログラミングスクール5選

まとめ

今回はゲーム中のパラメータで達成条件を設定して、アイテムのスプライトを変化させていく方法について解説してみました。

この記事中で解説したのはスイカの追加だけでしたが、冒頭で紹介していたプログラムは更に食べ物の種類を追加しておりますので、ぜひ動かしてみてどんな食べ物が追加されているかチェックしてみてください。