スクラッチプログラミング - 体力(たいりょく)ゲージのつくりかた

のこり体力(たいりょく)を表示(ひょうじ)しよう

今回(こんかい)紹介(しょうかい)するのは、Scratch (スクラッチ)で棒状(ぼうじょう)の体力(たいりょく)ゲージをつくる方法(ほうほう)です。

コスチュームは一切(いっさい)つかわずに、ゲージのすべてを「ペン」でつくります。変数(へんすう)やブロック定義(ていぎ)、演算(えんざん)のブロックをたくさんつかうので、Scratch 初心者(しょしんしゃ)のかたはむずかしくかんじるかもしれませんが、くわしく解説(かいせつ)していきますので、ぜひ一緒に(いっしょ)につくってみましょう。

サンプルプロジェクト

下(した)にあるのは、体力(たいりょく)ゲージのサンプルプロジェクトです。このサンプルでは、ゲージのうごきが簡単(かんたん)にわかるように、ボタンをおしたら体力(たいりょく)が1目盛(めもり)へるようにしています。

たいりょくゲージのサンプルGIF

体力(たいりょく)ゲージを利用(りよう)したゲームサンプルは、記事(きじ)の後半(こうはん)で紹介(しょうかい)します。

変数(へんすう)を用意(ようい)しよう

今回(こんかい)つくる体力(たいりょく)ゲージは、いろいろなゲームに再利用(さいりよう)できるものにしていきます。そのための変数(へんすう)を用意(ようい)しましょう。変数(へんすう)をつかうことで、ゲージの位置(いち)やながさ、最大体力(さいだいたいりょく)などを簡単(かんたん)に変更(へんこう)できるようになりますよ。

  1. すきな位置(いち)にゲージを表示(ひょうじ)できるように、ゲージのx座標(ざひょう)ゲージのy座標(ざひょう) を変数(へんすう)できめます。
  2. すきなサイズでつくれるように、ゲージのながさ を変数(へんすう)できめます。
  3. 体力(たいりょく)の最大値(さいだいち)を自由(じゆう)にかえられるように、MAX体力(たいりょく) を変数(へんすう)できめます。
  4. のこりの体力(たいりょく) は、最初(さいしょ)は MAX体力(たいりょく) と同量(どうりょう)です。
  5. ダメージ は、最初(さいしょ)はゼロです。
「みどりのはたがおされたとき」のしたに、へんすうをつなげる

変数(へんすう)の基本(きほん)は、以下(いか)の記事(きじ)で紹介(しょうかい)しているので、参考(さんこう)にしてください。

スクラッチプログラミング - 「へんすう」でかずをかぞえよう
「変数(へんすう)」で、ゲームでの得点(とくてん)やのこりじかんをかぞえる方法(ほうほう)をしょうかいします。変数(へんすう)はプログラミングでよくつかわれます。どういうものなのか、一緒(いっしょ)に見ていきましょう。

枠線(わくせん)をえがこう

ここからは、ペンをつかってゲージをえがいていきます。

最初(さいしょ)にえがくのは、ゲージの下地(したじ)となる黒い線(くろいせん)です。ゲージ本体(ほんたい)よりふとい線(せん)にして、ゲージの枠線(わくせん)になるようにします。線(せん)をえがいている様子(ようす)はみせたくないので、ブロック定義(ていぎ)をつかって一気(いっき)に線(せん)をかくようにしましょう。

  1. わくせんをえがく という名前(なまえ)のブロックをつくります。
  2. 「画面(がめん)を再描画(さいびょうが)せずに実行(じっこう)する」にチェックをいれます。
あたらしいブロックをつくる

わくせんをえがく というブロックがどのようなうごきをするのかを定義(ていぎ)しましょう。

  1. 線(せん)をえがきはじめる位置(いち)を指定(してい)します。
  2. ペンのふとさと色(いろ)を指定(してい)します。
  3. x 座標(ざひょう)を ゲージのながさ のぶんだけ移動(いどう)して線(せん)をえがきます。
わくせんをえがくブロック

以上(いじょう)で、わくせんをえがく を定義(ていぎ)できました。

ペンの基本(きほん)、ブロック定義(ていぎ)の基本(きほん)は、以下(いか)の記事(きじ)で紹介(しょうかい)しているので、参考(さんこう)にしてください。

スクラッチプログラミング - かくちょうきのう「ペン」のつかいかた
拡張機能(かくちょうきのう)の中から「ペン」をえらんで、あたらしいブロックを追加(ついか)してみましょう。「ペン」をつかうと、スプライトで線(せん)や絵(え)をかけるようになりますよ。
スクラッチプログラミング -「ブロックていぎ」とは?じぶんでつくるブロック
プログラミングにつかうブロックを、あたらしくつくってみましょう。Scratchにはたくさんのブロックが用意(ようい)されていますね。でもそれだけでなく、じぶんでブロックをつくることもできますよ。

ゲージをえがこう

つづいてえがくのは、ゲージ本体(ほんたい)です。枠線(わくせん)とおなじように、線(せん)をえがいている様子(ようす)はみせたくないので、ブロック定義(ていぎ)をつかって一気(いっき)に線(せん)をかくようにしましょう。

  1. ゲージをえがく というブロックを、「画面(がめん)を再描画(さいびょうが)せずに実行(じっこう)する」にチェックをいれてつくります。
  2. 線(せん)をえがきはじめる位置(いち)を指定(してい)します。
  3. ペンのふとさは、枠線(わくせん)よりほそくします。
ゲージをえがくブロックをていぎする

ゲージは、のこりの体力(たいりょく)の割合(わりあい)におうじて色(いろ)がかわるようにしますよ。

  1. のこりの体力(たいりょく)MAX体力(たいりょく) の80%よりおおいなら緑色(みどりいろ)、20%よりおおいなら黄色(きいろ) 、20%以下(いか)なら赤色(あかいろ) にします。
  2. x 座標(ざひょう)を ゲージのながさ のぶんだけ移動(いどう)して線(せん)をえがきます。
いろをしていしてせんをえがく

以上(いじょう)で、ゲージをえがく を定義(ていぎ)できました。

うごきをたしかめよう

では、定義(ていぎ)したブロックをつなげて、ここまでのうごきを確認(かくにん)してみましょう。

  1. ペンを利用(りよう)するときは、最初(さいしょ)に ぜんぶけす をつかって、画面(がめん)をクリアしてからえがきはじめます。
  2. 枠線(わくせん)の上(うえ)にゲージが表示(ひょうじ)されるよう、わくせんをえがくゲージをえがく の順(じゅん)にブロックをつなげます。
わくせんのつぎにゲージをえがく

緑(みどり)の旗(はた)をおすと、結果(けっか)は下(した)のようになります。線(せん)のふとさがちがうので、枠線(わくせん)の内側(うちがわ)にゲージ本体(ほんたい)がおさまります。最初(さいしょ)は、体力(たいりょく)が満(まん)タンの緑色(みどりいろ)です。

ゲージのさいしょのじょうたい

体力(たいりょく)をへらそう

ここからは、ダメージをうけるたびに体力(たいりょく)を1ずつへらすスクリプトをつくっていきます。体力(たいりょく)のへらしかたのポイントは、次(つぎ)のとおりです。

  • 体力(たいりょく)は、一気(いっき)にへらすのではなく、へる様子(ようす)をアニメーションさせます。
  • ゲージ本体(ほんたい)はずっとおなじながさのままで、みじかくしません。
  • ゲージ本体(ほんたい)の上(うえ)に、右側(みぎがわ)から黒い線(くろいせん)をのばします。(アニメーション)
  • 黒い線(くろいせん)で1目盛分(めもりぶん)のゲージをかくして、体力(たいりょく)がへったようにみせます。
くろいせんがたいりょくの1めもりぶんのびるアニメーション

黒い線(くろいせん)をえがきはじめる位置(いち)は、変数(へんすう)と演算(えんざん)をたくさんつかって指定(してい)するので、すこし複雑(ふくざつ)です。下(した)の画像(がぞう)でブロックのくみあわせを確認(かくにん)してください。

くろいせんをえがきはじめるいちをしめすブロックのくみあわせ

では、体力(たいりょく)をへらすスクリプトを、ブロック定義(ていぎ)でまとめていきましょう。このうごきは、さきほどつくった枠線(わくせん)やゲージ本体(ほんたい)のように一気(いっき)にえがくのではなく、アニメーションさせるので、「画面(がめん)を再描画(さいびょうが)せずに実行(じっこう)する」にチェックはいれません。

  1. 体力(たいりょく)をへらす というブロックをつくります。
  2. 線(せん)をえがきはじめる位置(いち)を指定(してい)します。
  3. ふとさはゲージ本体(ほんたい)と、色(いろ)は枠線(わくせん)とおなじにします。
  4. 1目盛分(めもりぶん)、すこしずつ線(せん)をえがきます。
たいりょくをへらすブロック

以上(いじょう)で、体力(たいりょく)をへらす を定義(ていぎ)できました。

へった体力(たいりょく)をぬりつぶそう

さて、今(いま)つくった体力(たいりょく)をへらすスクリプトは、ダメージをうけたときに「1目盛分(めもりぶん)だけ」へらします。そのため、すでにへったぶんのところは黒い線(くろいせん)がえがかれず、ゲージ本体(ほんたい)の色(いろ)がみえてしまいます。

すでにへったところのゲージほんたいがみえているじょうたい

これをふせぐために、すでにへった体力(たいりょく)のぶんは、黒色(くろいろ)でぬりつぶすようにしましょう。

ダメージをうけたら、アニメーションでへらす1目盛分(めもりぶん)以外(いがい)のところに黒い線(くろいせん)をえがきます。線(せん)をえがきおわる位置(いち)は、下(した)の画像(がぞう)のように指定(してい)してください。

すでにへったたいりょくのいちをしめすブロックのくみあわせ

この部分(ぶぶん)はアニメーションさせずに一気(いっき)にくろくしたいので、「画面(がめん)を再描画(さいびょうが)せずに実行(じっこう)する」にチェックをいれて、ブロックをつくりましょう。

  1. すでにへった体力(たいりょく) というブロックをつくります。
  2. 線(せん)をえがきはじめる位置(いち)をきめます。x 座標(ざひょう)に指定(してい)するのは、ゲージの右端(みぎはし)です。
  3. ふとさはゲージ本体(ほんたい)と、色(いろ)は枠線(わくせん)とおなじにします。
  4. すでにへった体力(たいりょく)のぶん、線(せん)をえがきます。
すでにへったたいりょくをぬりつぶすブロック

以上(いじょう)で、すでにへった体力(たいりょく) を定義(ていぎ)できました。

うごきをたしかめよう

では、定義(ていぎ)したブロックをつなげて、ここまでのうごきを確認(かくにん)してみましょう。

  1. ダメージをうけたときに、体力(たいりょく)をへらす というメッセージをうけとることとします。
  2. ダメージ1 ふやして、のこりの体力(たいりょく)-1 へらします。
  3. ゲージは、ダメージをうけるたびにすべてをえがきなおすので、いったん全部(ぜんぶ)けします。
  4. これまで定義(ていぎ)したブロックを順番(じゅんばん)につなげます。
ダメージをうけたら、たいりょくをへらす

ここでは単純(たんじゅん)にボタンを用意(ようい)して、ボタンがクリックされたときに 体力(たいりょく)をへらす というメッセージをおくるようにしてみます。ボタンをクリックするたびに黒い線(くろいせん)が左(ひだり)へのび、体力(たいりょく)がへるようになりました。

くろいせんがのびることでゲージがみじかくなったようにみえる

のこり1になったら点滅(てんめつ)させよう

体力(たいりょく)がのこり1になったら、点滅(てんめつ)させてめだつようにしましょう。点滅(てんめつ)させるのはゲージ本体(ほんたい)ではなく、一番上(いちばんうえ)にえがかれる、へった体力(たいりょく)の部分(ぶぶん)です。

いろをこうごにかえて、てんめつさせる
  1. のこり1のアラート というブロックを、「画面(がめん)を再描画(さいびょうが)せずに実行(じっこう)する」にチェックをいれてつくります。
  2. 線(せん)をえがきはじめる位置(いち)をきめます。x 座標(ざひょう)に指定(してい)するのは、ゲージの右端(みぎはし)です。
  3. すでにへった体力(たいりょく)のぶん、灰色(はいいろ)でえがきます。
すでにへったたいりょくをはいいろでぬりつぶす

この部分(ぶぶん)を点滅(てんめつ)させるために、灰色(はいいろ)と黒色(くろいろ)でぬりつぶすことを、0.1 秒(びょう)間隔(かんかく)で交互(こうご)にくりかえしましょう。

いろをかえてせんをえがくことをずっとくりかえす

この のこり1のアラート というブロックはどこでつかうかというと、体力(たいりょく)をへらしたあとです。定義(ていぎ)体力(たいりょく)をへらす の一番下(いちばんした)にブロックをつなげましょう。

  1. 体力(たいりょく)をへらしたあと、のこりの体力(たいりょく)1 なら
  2. のこり1のアラート を実行(じっこう)します。
のこりのたいりょくが1になったらてんめつさせる

ゼロになったらゲージをからにしよう

さて、ここまでたくさんのブロックをつくってきましたが、これが最後(さいご)のブロックとなります。のこりの体力(たいりょく)がゼロになったら、ゲージを灰色(はいいろ)でぬりつぶして、からっぽであることをあらわすためのブロックです。

ゲージをはいいろにする
  1. ゲージをからっぽにする というブロックを、「画面(がめん)を再描画(さいびょうが)せずに実行(じっこう)する」にチェックをいれてつくります。
  2. ゲージとおなじふとさとながさの線(せん)を灰色(はいいろ)でえがきます。
ゲージをはいいろでぬりつぶすブロック

このブロックはどこでつかうかというと、体力(たいりょく)をへらしたあとです。定義(ていぎ)体力(たいりょく)をへらす の一番下(いちばんした)にブロックをつなげましょう。

  1. 体力(たいりょく)をへらしたあと、のこりの体力(たいりょく)0 なら
  2. ゲージをからっぽにする を実行(じっこう)します。
  3. ゲームオーバーをおくる などを追加(ついか)して、これ以上(いじょう)ゲージがへらないようにします。
のこりのたいりょくがゼロになったらゲージをはいいろでぬりつぶしてゲームをとめる

スクリプト完成(かんせい)

体力(たいりょく)ゲージのスクリプトが完成(かんせい)です。

さいしょにわくせんとゲージをえがく、ダメージをうけたらたいりょくをへらす
わくせんをえがくブロック、ゲージをえがくブロック
たいりょくをへらすブロック、すでにへったたいりょくをぬりつぶすブロック
のこり1のアラートでてんめつさせるブロック、ゲージをからっぽにするブロック

体力(たいりょく)ゲージを利用(りよう)したゲームは、以下のリンクからあそぶことができます。Scratch かみひこうきゲーム by Pyxofy

たいりょくゲージをつかったスクラッチのゲーム

Pyxofy (著)「きょうからはじめるスクラッチプログラミング入門」

Pyxofy が Scratch の電子書籍を出版しました!Kindle・Apple Books からご購入ください。

詳細はこちら

まとめ

今回(こんかい)は、Scratch のペン機能(きのう)をつかって体力(たいりょく)ゲージをつくりました。つくりかたのポイントをまとめると、次(つぎ)のようになります。

  • ゲージの枠(わく)となる線(せん)をえがく … ゲージよりふとい線(せん)
  • ゲージ本体(ほんたい)をえがく … のこりの体力(たいりょく)におうじて色(いろ)をかえる
  • ダメージをうけたら、右側(みぎがわ)から左方向(ひだりほうこう)へ黒い線(くろいせん)をのばして1目盛(めもり)へらす … アニメーションあり
  • すでにへった体力(たいりょく)は黒い線(くろいせん)でぬりつぶす … アニメーションなし
  • のこりの体力(たいりょく)が1になったら点滅(てんめつ)させる … へったぶんを灰色(はいいろ)と黒(くろ)でぬりつぶすことを交互(こうご)にくりかえす
  • のこりの体力(たいりょく)が0になったらゲージをからっぽにする … ゲージを灰色(はいいろ)でぬりつぶす

最後まで読んでいただき、ありがとうございます。この記事をシェアしてくれると嬉しいです!

SNS で Pyxofy とつながりましょう! LinkedInThreadsBlueskyMastodon X (Twitter) @pyxofyFacebook

関連記事

スクラッチプログラミング - ライフ(HP)のつくりかた
ゲームでつかえるライフ(HP)のプログラムを紹介(しょうかい)します。ハートのスプライトでライフを表示(ひょうじ)して、ダメージをうけたときに1ポイントずつへるようにプログラミングします。
JavaScript - スクロールで伸縮するプログレスバーの作り方
ページがどれだけスクロールされているかを示すプログレスバーを作ります。横へ伸びたり縮んだりするプログレスバーをページの上部に設置して、スクロールの進捗率を表示する方法を学びましょう。
CSS Art – How to Make a Game Character – Kirby
Pink all over and packed with powerful moves. Unforgettable starry eyes. Join us in creating the iconic Kirby in this article, step-by-step.
CSS Animation – Linear Path Animation
Recycle your old rulers and fully embrace CSS. Learn how to animate a circle shape along a straight, linear path in this step-by-step article.