バーと呼ばれる一種のメーターの使い方を覚えましょう。
ついでにバーの値を表示するための数値ラベルについても解説します。 | ||
バーとは、格闘ゲームのゲージのようなものです。
棒状のメーターで表すことにより、値を視覚的で分かりやすいものにします。 下の例では、途中で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本体のアイコンをオリジナルのアイコンに変えてみます。 | ||