※ 当ページには【広告/PR】を含む場合があります。
2020/09/19
【Scratchで簡単なゲーム作成編③】スプライトのコピーとゲーム機能の拡張
【Scratchで簡単なゲーム作成編⑤】ゲームの状態を伝えるセリフ枠を作成する
ゲームを遊んでいるプレーヤーからすると、アイテムの種類が増えるとグッと楽しくなります。今回は条件の設定でアイテムの種類を変化させる方法のプログラミング方法を深堀してみましょう。なお、今回までで紹介したプログラミングテクニックで完成品は以下のようなゲームに仕上がる予定です。
【Pschool厳選】Scratchを学べるオンライン・駅前プログラミングスクール5選
表示条件の設定
前回の記事・「Scratchで簡単なゲーム作成編③ ~ スプライトのコピーとゲーム機能の拡張」までのプログラムを使って、更に機能を盛り込んでいきましょう。プログラムはScratchのウェブページのココから利用できます。【Scratchで簡単なゲーム作成編③】スプライトのコピーとゲーム機能の拡張作成中のScratchゲームでエサ置き場の増やし方(スプライトのコピー追加)のテクニックを解説します。
今回の目的はゲームの条件を満たすと新しい食べ物が選択できるような機能をつけることです。最初に条件を決めましょう。とりあえずりんご5個とタコ3個でスイカが出現
して食べ物の選択画面から使えるようにしてみます。
【Pschool厳選】Scratchを学べるオンライン・駅前プログラミングスクール5選
元にするスプライトをコピーして使い回す
アイテムの出現する条件を決めましたので、まずは元あったりんご
スプライトをコピーして、スプライト名をスイカ
に変更しておきます。とりあえずスイカのスプライトを選択モードで画面に現れるように、雑に仮置きしておきます。たべもののスプライト(りんご・タコ・スイカ)のクリックされた時のブロックが長くなったきたので、共通部分を定義ブロック
でくくり出します。各スプライトにこの定義ブロックをコピーして使い回すことで、今後食べ物の種類を増やしても、定義ブロックの引数(スプライトの名前)を変えるだけで済みます。
【Pschool厳選】Scratchを学べるオンライン・駅前プログラミングスクール5選
条件を満たした時にだけ表示させる
コピーした直後のスイカ
スプライトはそのままだとゲーム開始から表示されてしまいます。そこで、たべたりんご
のスコアとたべたタコ
のスコアを使って、以下のようにブロックを修正します。もし〜なら
ブロックを利用することで、食べ物選択画面にりんご5個とタコ3個でスイカが出現
ができるようになりました。余談〜デバッグの方法
今回のように、変数がある条件を満たすと、ゲームの状態が変化するような機能を盛り込む場合、その条件になるまで気長に待ってはいられないと思います。すぐに条件を満たしているか確認するには、スプライトのキャンバスに変数を代入するブロックを置いて、ゲームをスタート後の好きなタイミングでそのブロックをクリックすると良いでしょう。
【Pschool厳選】Scratchを学べるオンライン・駅前プログラミングスクール5選
エサ置き場にスイカを置く
このままではスイカを選んでも皿の上におけないので、エサ置き場のブロックコードを手直ししていきます。おきばしょ1
からおきばしょ5
までのエサ置き場のスプライトに、新たにスイカ
のコスチュームを追加します。また各エサ置き場のブロックコードで、たべもの#?
のメッセージイベントのブロックへ、スイカのコスチュームになるように、それぞれ修正します。下の図は例としてたべもの1?
のブロックの部分の修正を行ったときのものです。他のたべもの2?
からたべもの5?
の各イベントにも同じように修正してください。これでエサ置き場にスイカを置けるようになりました。
【Pschool厳選】Scratchを学べるオンライン・駅前プログラミングスクール5選
スコアボードにスイカを追加する
スイカは追加できるようになりましたが、スコアボードに食べたスイカの数を表示できるようになっていないので、プログラムを変えていきます。まずりんごのかず
かタコのかず
スプライトをコピーして、スイカのかず
を作成します。このスプライトのコスチュームをスイカの画像に変えて、コスチューム名をスイカ
に直します。その後、大体の位置でよいのでスコアボード上に配置させておきます。では、スイカのかず
のスプライトのブロックコードも修正します。コピーしたブロックの中で、食べ物の名前の付いた変数やイベント名をすべてスイカ
の付くものに取り替えます。後は、スコアボード
スプライトのブロックコードを修正して、スイカを食べたときの得点の付け方を追加します。ゲーム開始時の変数たべたスイカ
を初期化し、たべた1
からたべた5
までのメッセージイベントのブロックに、スイカを食べたときの処理を追加します。なお、スイカの得点は+20と設定しています。スプライトの位置の微調整
先程までは、スイカのかず
スプライトの位置を大体の場所に表示していましたが、ちょうどいい位置決めを行いたい場合、スプライトの表示位置の設定はゲームを走らせながら、x座標とy座標を調整するのがよいと思います。
【Pschool厳選】Scratchを学べるオンライン・駅前プログラミングスクール5選
条件を満たしたときにスコアボードに表示する
最後にスコアボードにスイカのかず
スプライトを表示するタイミングを上で説明したように、たべたリンゴ5個以上
かつたべたタコ3個以上
の条件で、もし〜なら
ブロックを使って処理を囲みます。これで条件を満たさない場合には、スイカのかず
スプライトはスコアボードから隠れているようにすることができました。以上で、エサ場における食べ物の種類が増やすことが可能となりました。スイカを出すまでの機能を盛り込んだプログラムはココから利用できますので、これまでの内容で疑問があったら参考ください。おまけの機能〜得点の表示
食べ物の種類も増えたので、選択画面に表示される食べ物の下に各得点を表示できるようにしました。これで食べ物が何点入るかをプレイヤーに教えることができます。
【Pschool厳選】Scratchを学べるオンライン・駅前プログラミングスクール5選
まとめ
今回はゲーム中のパラメータで達成条件を設定して、アイテムのスプライトを変化させていく方法について解説してみました。この記事中で解説したのはスイカの追加だけでしたが、冒頭で紹介していたプログラムは更に食べ物の種類を追加しておりますので、ぜひ動かしてみてどんな食べ物が追加されているかチェックしてみてください。