3.8 バーの作成

今回の目的
 バーと呼ばれる一種のメーターの使い方を覚えましょう。

 ついでにバーの値を表示するための数値ラベルについても解説します。

 


バー
 バーとは、格闘ゲームのゲージのようなものです。
 棒状のメーターで表すことにより、値を視覚的で分かりやすいものにします。

 下の例では、途中でforループを用いてますが本来は使う必要ありません。
 バーの減り方を工夫するために使っているだけです。

*define

clickstr "」。!?",2
effect 10,10,1000

game
*start

バーを表示します。
bar 0,100,20,200,300,30,100,#ff0000

print 10

バーの値を減らします。
for %0=100 to 50 step -1

bar 0,%0,20,200,300,30,100,#ff0000
wait 20
print 1

next
バーの長さが半分になりました。

barclear
repaint

バーが消えました。
end
  
 バーが表示された後に、滑らかに短くなっていきます。

 「bar」は、文字通りバーを読み込む命令です。
 スプライトと同様に「print」で表示させることが出来ます。
 
 では、「bar」に続くたくさんの数字について解説します。



 bar 0,100,20,200,300,30,100,#ff0000

 1番目の数字は「バー番号」です。
 0〜99の値に設定でき、この値が小さいほど手前に表示されます。



 bar 0,100,20,200,300,30,100,#ff0000

 前から2番目の数字は「現在値」、後から2番目の数字は「最大値」です。
 最大値に対する現在値の割合に合わせてバーは短くなります。

 この場合、最大値も現在値も100なのでバーは100%表示されます。
 現在値が50に変化したらバーは半分しか表示されません。



 bar 0,100,20,200,300,30,100,#ff0000

 中央4つの数字は、バーの位置や大きさを設定するものです。左から順に
 「左上端のX座標」「左上端のY座標」「」「高さ」です。



 bar 0,100,20,200,300,30,100,#ff0000

 最後のRGBは「バーの色」を表しています。



 「bar」は「print」のエフェクトを使って表示させるのが普通ですが、
 それではメーターらしい滑らかな増減は出来ません。
 上の例のように「for」ループと「print 1」を用いる必要があります。

 使い終わったバーは「barclear」で消去します。
 「repaint」とは画面を書き直す命令で、これによってバーは画面から消去されます。

 ※バーは左詰めが基本です。工夫すれば右詰めに出来ないこともありません。

 


数値ラベル
 バーの値を数値で表すために数値ラベルというものを使います。
 命令文の形は「bar」とよく似ています。

*define

clickstr "」。!?",2
effect 10,10,1000

game
*start

バーを表示します。
bar 0,100,80,200,300,30,100,#ff0000
prnum 0,100,10,205,20,20,#ffffff
print 10

バーの値を減らします。
for %0=100 to 50 step -1

bar 0,%0,80,200,300,30,100,#ff0000
prnum 0,%0,10,205,20,20,#ffffff
wait 20
print 1

next
バーの長さが半分になりました。

barclear
prnumclear
repaint

バーが消えました。
end
  
 数字はバーの現在値を表しています。

 数値ラベルの表示には「prnum」を用います。
 使い方は最大値が存在しないことを除いて、「bar」と同じです。

 左から順番に、「数値ラベル番号」「現在値」 「左上端のX座標」「左上端のY座標
 「」「高さ」「」を指定します。

 「数値ラベル番号」が小さいほど手前に表示されます。
 「現在値」で使えるのは0〜999までの数字です。

 使い終わった数値ラベルは「prnumclear」で消去します。

 


消去の工夫
 バーや数値ラベルを消去するときにrepaintをそのまま使うと
 瞬間消去されてしまいます。
 それではカッコがつかないときには、こんな工夫の仕方があります。
 こんなやり方もあるのか程度に見てください。

*define

clickstr "」。!?",2
effect 10,10,1000

game
*start

バーを表示します。
bar 0,100,80,200,300,30,100,#ff0000
prnum 0,100,10,205,20,20,#ffffff
print 10

バーと数値ラベルをエフェクトを用いて消去します。
bar 0,0,80,200,300,30,100,#ff0000
prnum 0,%0,10,205,0,0,#ffffff
print 10

barclear
prnumclear
repaint

バーが消えました。
end
 クロスフェードで消去されます。

 上のスクリプトは、単にバーの現在値数値ラベルの高さ・幅0にしただけです。
 ここで「print 10」などを使ってやれば、画像エフェクトによって消去することが出来ます。

 画面上から消えても、まだメモリ上には残っているので、
 「barclear」「prnumclear」「repaint」で忘れず消去しましょう。

 


まとめ
 バーは、いろいろ制約が多く応用は難しいでしょう。

 しかし変数を使うゲームならばバーの使い道はたくさんあると思います。
 変数の値を数値だけで見せるのではなく、バーなどで視覚的に見せることは、
 ゲームをプレイヤーにとって分かりやすくする上で大切なことです。

 次節では、NScripter本体のアイコンをオリジナルのアイコンに変えてみます。

 


前へ    TOPへ戻る    次へ