見出し画像

Scratchの達人 #3 Scratchでスプライトの実行順番を指定する方法

こんにちは。麻生菜乃(あそう なの)といいます。

2022年12月に「Scratchの達人」を出版しました。この本は、初心者を卒業したScratch使いが、より深いプログラミングができるるようになることを目標とした、Scratchの解説書です。読者が楽しみながら読み進められるように、主に4つのゲームのプログラミングを通して、いろいろなことを解説しています。

今回は、本書で解説しているトピックのひとつについてご紹介します。

スプライトの実行順番を指定するメリット

Scratchに限らず、スプライトをあつかうプログラミングでは、スプライトの実行順番を指定できると、プログラム全体の流れが分かりやすくなります。その結果、プログラムを間違えにくくなりますし、仮に間違えてしまっても修正しやすくなります。また対戦型のアクションゲームでは勝ち・負け・引き分けを判定するのに、スプライトの実行順番がとても重要になります。

ただ残念なことにScratchには、スプライトの実行順番を指定する方法が用意されていません・・。ですが、クローンの機能を使うとスプライトの実行順番を指定することができます。

スプライトの実行順番を指定するカラクリ

クローンにはいくつかの特徴があります。たとえば[スプライトX]のプログラムの中で[スプライトY]をクローンしたとき、[スプライトY]のプログラムは[スプライトX]のプログラムよりも後に実行されます。

また[スプライトZ]のプログラムの中で、[スプライトP][スプライトQ][スプライトR]を順番にクローンしたときには、[スプライトP]→[スプライトQ]→[スプライトR]の順番でそれぞれのプログラムが実行されます。この特徴を利用します。

まず、スプライト全体を管理するスプライトを用意します。これを[メインスプライト]と呼ぶことにします。このスプライトに、他のスプライトを実行させたい順番でクローンさせます。

例えば[自機][敵機1][敵機2][敵機3]が登場するゲームを作って、この順番でスプライトを実行させたい場合[メインスプライト]で[自機]から順番にスプライトをクローンさせるわけです。こうすると、スプライトが実行される順番は、以下の通りになります。

 [メインスプライト]
  ↓
 [自機]
  ↓
 [敵機1]
  ↓
 [敵機2]
  ↓
 [敵機3]
  ↓
 [メインスプライト]
  ↓
  ・・・

なお「メインスプライト」では全体に関わる処理を実行し、それ以外のスプライトのプログラムではひとつひとつのスプライトに関わる処理を実行させると、それぞれのプログラムの役割が分かりやすく、見通しが良くなって、扱いやすくなります。

またメインスプライトはステージ上でゲームに参加しませんので、通常は非表示にしておくと、気にならなくなります。

具体的な方法は

具体的な方法については、本書の中でさらに詳しく、全プログラムについて解説しています。興味を持たれた方は、ぜひご一読ください。

Amazonでチェック

#ゲームの作り方

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?