■パラメータ表現
パラメーターを表現する場合に、数字を表示する以外にも「ゲージ」を使ってその長さによってパラメータを表現するという手法があると思います。
NScripterにはそういった「ゲージ」を簡単に表示するための
「bar」命令というものがあります。
この「bar」命令で表示されたものを「バー」と呼びます。
このバーは、
数値ラベルと同じような扱いになります。
位置関係としては、立ち絵とスプライトより上、テキストウィンドウより下です。
また、数値ラベルよりも常に下になります。
(「windowback」命令時にはスプライトと同じくテキストウィンドウの上に来ます。「humanz」命令では、設定に関係なく常に立ち絵より上です。)
■バーを表示するスクリプト
それではバーを表示するスクリプトを見てみましょう。
bar 8,25,200,250,300,50,100,#FF0000
print 1
|
数字を一つずつ説明します。
まず一番左の「8」という数字は、「バー番号」です。
要するに、スプライト番号みたいなものです。
バー番号には「0〜99」の番号を使うことができます。
ちなみに、バー同士の位置関係は番号が大きい方が上に来ます。
これはスプライトの「小さい方が上に来る」の逆となっています。
次の「25」という数字はバーの現在値です。
通常ならば、ここに変数を指定するわけですね。
次の「200」と「250」の数字は、バーを表示するX・Y座標です。
これはスプライトと同じく、その位置がバーの左上座標になります。
次の「300」と「50」の数字は、バー全体の横幅・高さです。
横幅はあくまでも「全体の」ですので、実際に表示される長さは現在値から計算される長さになります。
その次の「100」という数字、これはバーの最大値です。
この数字に対する現在値の割合が、バーの長さに関係します。
最後の「#FF0000」がバーの色です。16進数で指定してください。
なお、バーは「print」を行わない限り画面に表示されることはありません。
■バーの長さ
実際に表示されるバーの長さは以下のようになります。
現在値÷最大値×バー全体の横幅
上のスクリプトでは「25÷100×300」ということでバーの長さは「75」になります。
現在値が「100」だったら(最大だったら)、横幅の「300」になるということです。
■バーを消去するスクリプト
バーを消去するスクリプトを見てみましょう。
「barclear」というのが、全てのバーを消去する命令です。
これも「print」を必要とします。
現在の所、バーを個別に消去する命令はないようです。
また、バーにはスプライトのような表示・非表示という状態も存在しません。
あくまで表示するか消してしまうかだけです。
ただし、
数値ラベルの項で説明したように
「mode_saya」命令の影響を受けて非表示状態になることはあります。
■増減をループによって表現してみる
最後に、「for〜nextループ」を使ってバーを増減させることに挑戦してみましょう。
*define
game
*start
mov %1,25
mov %2,30
bar 8,%1,200,250,300,30,100,#FF0000
print 1
click
for %0=1 to %2
bar 8,%1,200,250,300,30,100,#FF0000
inc %1
print 1
next
click
end
|
上のスクリプトを実行してみてください。
クリックするとバーがぐいーんと伸びるはずです。
ここで数字変数「%1」はバーの現在値を、「%2」は増える分の値を意味します。
このスクリプトはほんの一例です。
値の設定の仕方など、まだまだやり方はあると思います。
他にも、例えばバーの最大値に達したら「break」をするなどが考えられます。
また、このままではパソコンの能力によってバーが伸びる速度に差が出てしまうために、「waittimer」を使うなどの工夫が考えられます。