スクラッチプログラミング - 体力(たいりょく)ゲージのつくりかた
のこり体力(たいりょく)を表示(ひょうじ)しよう
今回(こんかい)紹介(しょうかい)するのは、Scratch (スクラッチ)で棒状(ぼうじょう)の体力(たいりょく)ゲージをつくる方法(ほうほう)です。
コスチュームは一切(いっさい)つかわずに、ゲージのすべてを「ペン」でつくります。変数(へんすう)やブロック定義(ていぎ)、演算(えんざん)のブロックをたくさんつかうので、Scratch 初心者(しょしんしゃ)のかたはむずかしくかんじるかもしれませんが、くわしく解説(かいせつ)していきますので、ぜひ一緒に(いっしょ)につくってみましょう。
サンプルプロジェクト
下(した)にあるのは、体力(たいりょく)ゲージのサンプルプロジェクトです。このサンプルでは、ゲージのうごきが簡単(かんたん)にわかるように、ボタンをおしたら体力(たいりょく)が1目盛(めもり)へるようにしています。
体力(たいりょく)ゲージを利用(りよう)したゲームサンプルは、記事(きじ)の後半(こうはん)で紹介(しょうかい)します。
変数(へんすう)を用意(ようい)しよう
今回(こんかい)つくる体力(たいりょく)ゲージは、いろいろなゲームに再利用(さいりよう)できるものにしていきます。そのための変数(へんすう)を用意(ようい)しましょう。変数(へんすう)をつかうことで、ゲージの位置(いち)やながさ、最大体力(さいだいたいりょく)などを簡単(かんたん)に変更(へんこう)できるようになりますよ。
- すきな位置(いち)にゲージを表示(ひょうじ)できるように、
ゲージのx座標(ざひょう)
とゲージのy座標(ざひょう)
を変数(へんすう)できめます。 - すきなサイズでつくれるように、
ゲージのながさ
を変数(へんすう)できめます。 - 体力(たいりょく)の最大値(さいだいち)を自由(じゆう)にかえられるように、
MAX体力(たいりょく)
を変数(へんすう)できめます。 のこりの体力(たいりょく)
は、最初(さいしょ)はMAX体力(たいりょく)
と同量(どうりょう)です。ダメージ
は、最初(さいしょ)はゼロです。
変数(へんすう)の基本(きほん)は、以下(いか)の記事(きじ)で紹介(しょうかい)しているので、参考(さんこう)にしてください。
枠線(わくせん)をえがこう
ここからは、ペンをつかってゲージをえがいていきます。
最初(さいしょ)にえがくのは、ゲージの下地(したじ)となる黒い線(くろいせん)です。ゲージ本体(ほんたい)よりふとい線(せん)にして、ゲージの枠線(わくせん)になるようにします。線(せん)をえがいている様子(ようす)はみせたくないので、ブロック定義(ていぎ)をつかって一気(いっき)に線(せん)をかくようにしましょう。
わくせんをえがく
という名前(なまえ)のブロックをつくります。- 「画面(がめん)を再描画(さいびょうが)せずに実行(じっこう)する」にチェックをいれます。
わくせんをえがく
というブロックがどのようなうごきをするのかを定義(ていぎ)しましょう。
- 線(せん)をえがきはじめる位置(いち)を指定(してい)します。
- ペンのふとさと色(いろ)を指定(してい)します。
- x 座標(ざひょう)を
ゲージのながさ
のぶんだけ移動(いどう)して線(せん)をえがきます。
以上(いじょう)で、わくせんをえがく
を定義(ていぎ)できました。
ペンの基本(きほん)、ブロック定義(ていぎ)の基本(きほん)は、以下(いか)の記事(きじ)で紹介(しょうかい)しているので、参考(さんこう)にしてください。
ゲージをえがこう
つづいてえがくのは、ゲージ本体(ほんたい)です。枠線(わくせん)とおなじように、線(せん)をえがいている様子(ようす)はみせたくないので、ブロック定義(ていぎ)をつかって一気(いっき)に線(せん)をかくようにしましょう。
ゲージをえがく
というブロックを、「画面(がめん)を再描画(さいびょうが)せずに実行(じっこう)する」にチェックをいれてつくります。- 線(せん)をえがきはじめる位置(いち)を指定(してい)します。
- ペンのふとさは、枠線(わくせん)よりほそくします。
ゲージは、のこりの体力(たいりょく)の割合(わりあい)におうじて色(いろ)がかわるようにしますよ。
のこりの体力(たいりょく)
がMAX体力(たいりょく)
の80%よりおおいなら緑色(みどりいろ)、20%よりおおいなら黄色(きいろ) 、20%以下(いか)なら赤色(あかいろ) にします。- x 座標(ざひょう)を
ゲージのながさ
のぶんだけ移動(いどう)して線(せん)をえがきます。
以上(いじょう)で、ゲージをえがく
を定義(ていぎ)できました。
うごきをたしかめよう
では、定義(ていぎ)したブロックをつなげて、ここまでのうごきを確認(かくにん)してみましょう。
- ペンを利用(りよう)するときは、最初(さいしょ)に
ぜんぶけす
をつかって、画面(がめん)をクリアしてからえがきはじめます。 - 枠線(わくせん)の上(うえ)にゲージが表示(ひょうじ)されるよう、
わくせんをえがく
、ゲージをえがく
の順(じゅん)にブロックをつなげます。
緑(みどり)の旗(はた)をおすと、結果(けっか)は下(した)のようになります。線(せん)のふとさがちがうので、枠線(わくせん)の内側(うちがわ)にゲージ本体(ほんたい)がおさまります。最初(さいしょ)は、体力(たいりょく)が満(まん)タンの緑色(みどりいろ)です。
Become a Pyxofy Member
最新記事をメールで受信 Pyxofy メンバー限定公開記事が読み放題
いつでも登録解除できます。スパムメールは送りません。
体力(たいりょく)をへらそう
ここからは、ダメージをうけるたびに体力(たいりょく)を1ずつへらすスクリプトをつくっていきます。体力(たいりょく)のへらしかたのポイントは、次(つぎ)のとおりです。
- 体力(たいりょく)は、一気(いっき)にへらすのではなく、へる様子(ようす)をアニメーションさせます。
- ゲージ本体(ほんたい)はずっとおなじながさのままで、みじかくしません。
- ゲージ本体(ほんたい)の上(うえ)に、右側(みぎがわ)から黒い線(くろいせん)をのばします。(アニメーション)
- 黒い線(くろいせん)で1目盛分(めもりぶん)のゲージをかくして、体力(たいりょく)がへったようにみせます。
黒い線(くろいせん)をえがきはじめる位置(いち)は、変数(へんすう)と演算(えんざん)をたくさんつかって指定(してい)するので、すこし複雑(ふくざつ)です。下(した)の画像(がぞう)でブロックのくみあわせを確認(かくにん)してください。
では、体力(たいりょく)をへらすスクリプトを、ブロック定義(ていぎ)でまとめていきましょう。このうごきは、さきほどつくった枠線(わくせん)やゲージ本体(ほんたい)のように一気(いっき)にえがくのではなく、アニメーションさせるので、「画面(がめん)を再描画(さいびょうが)せずに実行(じっこう)する」にチェックはいれません。
体力(たいりょく)をへらす
というブロックをつくります。- 線(せん)をえがきはじめる位置(いち)を指定(してい)します。
- ふとさはゲージ本体(ほんたい)と、色(いろ)は枠線(わくせん)とおなじにします。
- 1目盛分(めもりぶん)、すこしずつ線(せん)をえがきます。
以上(いじょう)で、体力(たいりょく)をへらす
を定義(ていぎ)できました。
へった体力(たいりょく)をぬりつぶそう
さて、今(いま)つくった体力(たいりょく)をへらすスクリプトは、ダメージをうけたときに「1目盛分(めもりぶん)だけ」へらします。そのため、すでにへったぶんのところは黒い線(くろいせん)がえがかれず、ゲージ本体(ほんたい)の色(いろ)がみえてしまいます。
これをふせぐために、すでにへった体力(たいりょく)のぶんは、黒色(くろいろ)でぬりつぶすようにしましょう。
ダメージをうけたら、アニメーションでへらす1目盛分(めもりぶん)以外(いがい)のところに黒い線(くろいせん)をえがきます。線(せん)をえがきおわる位置(いち)は、下(した)の画像(がぞう)のように指定(してい)してください。
この部分(ぶぶん)はアニメーションさせずに一気(いっき)にくろくしたいので、「画面(がめん)を再描画(さいびょうが)せずに実行(じっこう)する」にチェックをいれて、ブロックをつくりましょう。
すでにへった体力(たいりょく)
というブロックをつくります。- 線(せん)をえがきはじめる位置(いち)をきめます。x 座標(ざひょう)に指定(してい)するのは、ゲージの右端(みぎはし)です。
- ふとさはゲージ本体(ほんたい)と、色(いろ)は枠線(わくせん)とおなじにします。
- すでにへった体力(たいりょく)のぶん、線(せん)をえがきます。
以上(いじょう)で、すでにへった体力(たいりょく)
を定義(ていぎ)できました。
うごきをたしかめよう
では、定義(ていぎ)したブロックをつなげて、ここまでのうごきを確認(かくにん)してみましょう。
- ダメージをうけたときに、
体力(たいりょく)をへらす
というメッセージをうけとることとします。 ダメージ
を1
ふやして、のこりの体力(たいりょく)
を-1
へらします。- ゲージは、ダメージをうけるたびにすべてをえがきなおすので、いったん全部(ぜんぶ)けします。
- これまで定義(ていぎ)したブロックを順番(じゅんばん)につなげます。
ここでは単純(たんじゅん)にボタンを用意(ようい)して、ボタンがクリックされたときに 体力(たいりょく)をへらす
というメッセージをおくるようにしてみます。ボタンをクリックするたびに黒い線(くろいせん)が左(ひだり)へのび、体力(たいりょく)がへるようになりました。
のこり1になったら点滅(てんめつ)させよう
体力(たいりょく)がのこり1になったら、点滅(てんめつ)させてめだつようにしましょう。点滅(てんめつ)させるのはゲージ本体(ほんたい)ではなく、一番上(いちばんうえ)にえがかれる、へった体力(たいりょく)の部分(ぶぶん)です。
のこり1のアラート
というブロックを、「画面(がめん)を再描画(さいびょうが)せずに実行(じっこう)する」にチェックをいれてつくります。- 線(せん)をえがきはじめる位置(いち)をきめます。x 座標(ざひょう)に指定(してい)するのは、ゲージの右端(みぎはし)です。
- すでにへった体力(たいりょく)のぶん、灰色(はいいろ)でえがきます。
この部分(ぶぶん)を点滅(てんめつ)させるために、灰色(はいいろ)と黒色(くろいろ)でぬりつぶすことを、0.1 秒(びょう)間隔(かんかく)で交互(こうご)にくりかえしましょう。
この のこり1のアラート
というブロックはどこでつかうかというと、体力(たいりょく)をへらしたあとです。定義(ていぎ)体力(たいりょく)をへらす
の一番下(いちばんした)にブロックをつなげましょう。
- 体力(たいりょく)をへらしたあと、
のこりの体力(たいりょく)
が1
なら のこり1のアラート
を実行(じっこう)します。
ゼロになったらゲージをからにしよう
さて、ここまでたくさんのブロックをつくってきましたが、これが最後(さいご)のブロックとなります。のこりの体力(たいりょく)がゼロになったら、ゲージを灰色(はいいろ)でぬりつぶして、からっぽであることをあらわすためのブロックです。
ゲージをからっぽにする
というブロックを、「画面(がめん)を再描画(さいびょうが)せずに実行(じっこう)する」にチェックをいれてつくります。- ゲージとおなじふとさとながさの線(せん)を灰色(はいいろ)でえがきます。
このブロックはどこでつかうかというと、体力(たいりょく)をへらしたあとです。定義(ていぎ)体力(たいりょく)をへらす
の一番下(いちばんした)にブロックをつなげましょう。
- 体力(たいりょく)をへらしたあと、
のこりの体力(たいりょく)
が0
なら ゲージをからっぽにする
を実行(じっこう)します。ゲームオーバーをおくる
などを追加(ついか)して、これ以上(いじょう)ゲージがへらないようにします。
スクリプト完成(かんせい)
体力(たいりょく)ゲージのスクリプトが完成(かんせい)です。
体力(たいりょく)ゲージを利用(りよう)したゲームは、以下のリンクからあそぶことができます。Scratch かみひこうきゲーム by Pyxofy
Pyxofy (著)「きょうからはじめるスクラッチプログラミング入門」
Pyxofy が Scratch の電子書籍を出版しました!Kindle・Apple Books からご購入ください。
まとめ
今回(こんかい)は、Scratch のペン機能(きのう)をつかって体力(たいりょく)ゲージをつくりました。つくりかたのポイントをまとめると、次(つぎ)のようになります。
- ゲージの枠(わく)となる線(せん)をえがく … ゲージよりふとい線(せん)
- ゲージ本体(ほんたい)をえがく … のこりの体力(たいりょく)におうじて色(いろ)をかえる
- ダメージをうけたら、右側(みぎがわ)から左方向(ひだりほうこう)へ黒い線(くろいせん)をのばして1目盛(めもり)へらす … アニメーションあり
- すでにへった体力(たいりょく)は黒い線(くろいせん)でぬりつぶす … アニメーションなし
- のこりの体力(たいりょく)が1になったら点滅(てんめつ)させる … へったぶんを灰色(はいいろ)と黒(くろ)でぬりつぶすことを交互(こうご)にくりかえす
- のこりの体力(たいりょく)が0になったらゲージをからっぽにする … ゲージを灰色(はいいろ)でぬりつぶす
最後まで読んでいただき、ありがとうございます。この記事をシェアしてくれると嬉しいです!
SNS で Pyxofy とつながりましょう! LinkedIn・ Threads・Bluesky・ Mastodon・ X (Twitter) @pyxofy・ Facebook
Pyxofy 新規メンバー登録
最新記事をメールで受信 Pyxofy メンバー限定公開コンテンツにアクセス
いつでも登録解除できます。スパムメールは送りません。