見出し画像

Scratchの達人 #5 スプライトを背景として管理する方法

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

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

今回は本書の中から、スプライトを背景として管理する方法について紹介します。

スプライトを背景として使う理由

Scratchのステージには、動きに関するブロックが何も実装されていないので、スクロールさせたり、揺らせたりするようなことができません。そこで本書では、スプライトを背景として使ってゲームを作ります。

 まずはステージを方眼紙のように、正方形の小さいマスに分割します。そして、このマスと同じ大きさのスプライトをクローンして、タイルのように敷き詰め、背景として使用します。ここからはこのスプライトを「背景スプライト」と表記します。 

 背景スプライトは(当然ですが)スプライトなので、座標値を変更して、スクロールさせたり、揺らせたりすることができます。また「自機」や「敵機」から、ひとつひとつの背景スプライトに当たり判定を行うこともできます。これにより、本来のステージを背景として使うよりもゲームを広げやすくなるので、Scratchの使い方として、より自然なようにも感じます。

背景スプライトを画面に敷き詰める

本書では、背景スプライトの大きさを40×40ピクセルとします。その結果、ステージは横が12マス、縦が9マスとなって下図のようになります。

ここに背景スプライトをひとつずつクローンして配置し、背景として使っていくわけですね。

続いて、背景スプライトを管理するリストを作成して、値をセットしておきます。108個の背景スプライトを管理しますので、108個の値をセットすることになりますね。値は例えば、何もないところは0、通常の壁ならば1、スタートの壁ならば2、ゴールの壁ならば3、といった具合にしておきます。

リストにセットした値の位置と、背景スプライトの位置の関係は以下のようになります。

このリストを、メインスプライト(※)で先頭から読み込んで、セットされた値が1以上ならば背景スプライトをクローンします。
(※:Scratchでスプライトの実行順番を指定する方法をご参照ください)

クローンされた背景スプライトは、リストの値の位置(=自分がクローンされた順番)を元にしてマス目の座標値を計算し、自分を配置します。併せてこの値によりコスチュームを変更します。先ほどの例だと、1ならば通常の壁、2ならばスタートの壁、3ならばゴールの壁、となりますね。

以上を実行すると、ステージに配置された背景スプライトは、例えば以下のようになります。緑のマスは通常の壁、青いマスはスタートの壁、赤いマスはゴールの壁です。また数値はリストにセットされた値です。

リストの値を使って、当たり判定や仕様の追加を行う

リストの値は背景スプライトのセットだけではなく、「自機」や「敵機」からの当たり判定にも使うことができます。例えば、0ならば通過可能、1から3ならば通過不可などとするわけです。

また、3ならば面クリアの処理を行わせる、というようなことも可能です。これを応用すると4ならばダメージ、5ならばパワーアップなど、いろいろな仕様を増やすことができますよね。

他にも、いろいろと紹介しています

具体的な背景スプライトの座標値の計算式や、当たり判定の方法、仕様の追加方法などについて、本書の中でさらに詳しく解説しています。興味を持たれた方は、ぜひご一読ください!

Amazonでチェック

#ゲームの作り方


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

ゲームの作り方

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