MakeCode Arcade ステータスバーを使う方法

プログラミング

Twitterネタゲーム第二弾でステータスバーを使いました。

この記事ではほとんど説明せずに終わっていたので本記事にてもう少し詳しく紹介しようと思います。

ステータスバーとは?

ここでの「ステータスバー」についてはMakeCode Arcadeについてです。

「ステータスバー」は数値をグラフィックで見やすくした物です。

特に短い時間に数値が変化する場合に正確な値より全体のどれくらいを示しているのかを直感的に把握できる特徴があります。

ゲームでは主にキャラクターの体力などに使われています。

Twitterネタゲーム第二弾ではキャラクターの速度表示に使いました。

拡張機能「status-bar」

ステータスバーはMakeCode Arcadeのグループに最初から入っていません。

拡張機能の一覧から「status-bar」を選びます。

高度なブロックの拡張機能
拡張機能の「status-bar」

読み込みが完了するとブロックグループに「Status Bars」が追加されます。

ブロックグループに「Status Bars」が追加される

これで準備は完了です。

以下で目的別に実装方法を紹介します。

目的別実装方法の紹介

まずは十字キーで自由に動き回るキャラクターの実装をしておきます。

十字キーによる移動ができるキャラクターの実装例

この実装をベースにステータスバーの実装例を紹介します。

キャラクターに付いてくるステータスバー

一番重宝すると思われるキャラクターに付いてくるステータスバーの実装方法について紹介します。

キャラクターの上に付いてくるステータスバーの実装例

「変数「statusbar」を「create status bar sprite width 「20」 height 「4」 kind 「Helth」にする」と「attach 「statusbar」 to 「mySprite」」の2つのブロックを追加するだけです。

これでキャラクターの上に付いてくるステータスバーを実装する事ができます。

キャラクターの上に付いてくるステータスバー

それぞれのブロックについて解説します。

「変数「statusbar」を「create status bar sprite width 「20」 height 「4」 kind 「Helth」にする」ブロックについて

「statusbar」はステータスバーの変数です。

ステータスバーを1つしか使わない場合にはこのままでも良いですが複数使う場合にはどのステータスバーか分かるように変数名を変更しておく事をおススメします。

widthとheightの値はそのままステータスバーの幅と高さになります。

このサイズを変更した場合には高さ、幅のうち長い方が増減する方向になるので縦長のステータスバーを作りたい場合には縦長のサイズを指定する事で実現できます。

縦長と横長のステータスバー実装例
縦長と横長のステータスバー

kindの「Helth」はステータスバーの種類となるので任意の物を選ぶか作りましょう。

「attach 「statusbar」 to 「mySprite」」ブロックについて

ほとんど説明の必要がありませんね。

書いてある通り、スプライトにステータスバーをアタッチしてくれるブロックです。

このブロックは「+」で拡張でき、拡張すると「padding 「0」 offset 「0」」が追加されます。

この値を調整する事で標準でアタッチされたキャラクターの上または左から下または右に変更したり、離したり近づけたりする事もできます。

ステータスバーの位置調整実装例
ステータスバーの位置調整

ステータスバーの固定

画面の決まった位置にステータスバーを固定する実装方法について紹介します。

ステータスバーの位置を固定する実装例

これはほぼ説明不要ですね。

「変数「statusbar」を「create status bar sprite width 「20」 height 「4」 kind 「Helth」にする」ブロックで作成したステータスバーはスプライトとして扱う事ができます。

よってスプライトと同様、座標位置を指定するだけで画面の決まった位置にステータスバーを固定する事ができます。

ステータスバーの位置を固定する

ステータスバーの値を変える

ステータスバーは値の変化を直感的かつ視覚的にするために使うので値の変化をしなければ意味がありません。

このステータスバーにはmax(最大値)とvalue(現在値)の2つの値を内部で保持しています。

デフォルトではmaxもvalueも100になっているので必要に応じて値を変化させるとそのまま表示に反映されます。

ステータスバーの値変化実装例
ステータスバーの値変化

maxもvalueもステータスバーに内包している変数と捉える事ができるので実装例のように「「statusbar」の「value」」を使う事でmaxやvalueを他の場所で使う事ができます。

ステータスバーの装飾

ステータスバーは一部をカスタマイズして装飾する事ができます。

装飾できる内容としてはバーの色、背景色、枠の色と太さです。

ステータスバーの装飾実装例

ステータスバー自体の色は「set 「statusbar」 fill 「色」 background 「色」」、枠は「set 「statusbar」 border width 「1」 「色」」のブロックで実現できます。

ステータスバーの装飾

それぞれのブロックについて解説します。

「set 「statusbar」 fill 「色」 background 「色」」ブロックについて

fillの色はバーの値の色、backgroundは背景色です。

このブロックは「+」で拡張でき、拡張すると「drain color「色」」が追加されます。

この拡張については後述するのでここではバーの値の色と背景色の色についての解説だけで終わります。

「set 「statusbar」 border width 「1」 「色」」ブロックについて

見た目のまま数値が枠の太さ、色が枠の色です。

このブロックはこれ以上の解説が不要ですね。

ステータスバーの減少効果を付ける

「set 「statusbar」 fill 「色」 background 「色」」ブロックの解説にて「後述する」とした拡張の「drain color 「色」」を使う事でステータスバーの減少効果を付ける事ができます。

ただし、それだけでは表現出来ず、もう1つ「set 「statusbar」 「smooth transition」 「オフ」」ブロックを使います。

ステータスバーの減少効果を付ける実装例
ステータスバーの減少効果を付ける

「set 「statusbar」 「smooth transition」 「オフ」」ブロックを「オン」に切り替える事でステータスバーの値を減少させると「drain color 「色」」で指定した色が追いかけて減っていく表現を付ける事ができます。

まとめ

今回は拡張機能の「status-bar」について紹介しました。

簡単に実装でき、表現もそれなりに多彩に出来るので色々な場面で使う事ができると思います。

ステータスバーの実装はまだ手探りで行っただけなので僕も知らない実装方法がほかにもあるかもしれません。

詳しくは拡張機能一覧の「status-bar」カードのリンクにある「詳しい説明」の先に書かれているようです。(当たり前ですが英語です)

pxt-status-bar
title: PXT Status Bar

使えそうな拡張機能があれば試して紹介しようと思います。

  ↓現在MakeCode Arcadeを学べる唯一の書籍です。

コメント

タイトルとURLをコピーしました