このページはCOOL ONLINE終了に伴いO-Show様の許可を得て作成したBinary Heavenのミラーサイトです
[TOP] [Profile] [NScripter] [BBS] [Links]
中級編 No.2
文字列スプライト
■概要■
文字列を任意の場所に表示したいと思った時、自分で画像を用意するのは非常に面倒です。

そこで今回は、文字列をスプライトにする方法をご紹介します。


使用命令:無し

「追加命令一覧.txt」の「画像タグs」参考
文字列スプライト

画像タグには、透過指定やアニメ指定の他に「画像タグs」というものがあります。

この画像タグsを、画像ファイル名を指定する代わりに使うことで、文字列を画像化することができます。

主に「lsp」や「lsph」命令で使うことになるので、実質「文字列のスプライト化」と言えます。 (立ち絵や背景でも使えますが、あまり意味はありません)



ではさっそく、例を見てみましょう。



	lsp 8,":s#FFFFFFあいうえお",50,100


スプライトとして、白い「あいうえお」が表示されることになります。

このように、「:」に続いて「s」を書き、その次にRGBで色を指定し、そして画像化したい文字列を書きます。



セルを増やす

上の例ではセル数は1ですが、画像タグsではセルを複数にすることができます。



	lsp 8,":s#FF0000#00FF00#0000FFあいうえお",50,100


このように、RGB指定を増やしていくだけでセルを増やすことができます。

上ではセル0が赤い「あいうえお」、セル1が緑の「あいうえお」、セル2が青い「あいうえお」になりました。
(もちろん、このまま表示してもセル0しか表示されません)


セルを増やしても、画像タグsではアニメーションすることはできませんが、ボタンにする時などはセルが2つ必要になります。



文字列スプライトのサイズ指定機能

文字列スプライトで表示される文字の大きさは、標準ではsetwindowで設定した、テキストウィンドウに表示される文字の大きさと同じです。

テキストウィンドウの文字の大きさを変更すると、文字列スプライトの文字の大きさもそれに合わせて変化するというわけです。


これでは少し不便なので、文字列スプライトの文字の大きさをスプライト毎に決める方法が存在しています。

スクリプトを見てみましょう。



	lsp 8,":s/30,25,1;#FFFFFFあいうえお",50,100


「s」の文字の次に「/」を入れます。半角のスラッシュです。
その次に数字を三つ書きますが、それぞれ文字の横幅、文字の縦幅、そして文字と文字の間をどれぐらい空けるかという指定です。ピクセル数で指定します。

その後に、色の指定との間に「;」を入れます。半角のセミコロンです。
画像タグのアニメーションの指定とやり方が似ていますね。



文字変数の画像化

この画像タグsを使って、変数を画像化することができます。画像化できるのは文字変数のみのようです。



	mov $0,"あいうえお"


	lsp 8,":s#FFFFFF$0",50,100

「あいうえお」と表示される。



ですが、文字変数と普通の文字を混ぜて表示することはできません。



	mov $0,"うえお"


	lsp 8,":s#FFFFFFあい$0",50,100

そのまま「あい$0」と表示されてしまう。


また、次のような書き方も正しく表示されません。



	mov $0,"あい"
	mov $1,"うえお"


	lsp 8,":s#FFFFFF$0$1",50,100

「あい」としか表示されない。


どうやら文字変数をスプライト化したい場合は、ひとつしか指定できないようです。これはもちろん、add命令などを使って一つの文字変数にまとめれば解決できるでしょう。



半角文字の表示

画像タグsを使った場合も、画像化したい文字列はやはりNScripterのテキストの規則通りに全て全角文字で書かなければなりません。

しかし実は、おそらくサポート外ですが、半角文字も画像化して表示することができます。



	lsp 8,":s#FFFFFFtest",50,100


上記のように、半角文字が偶数ならばきちんと表示されます。


奇数になると一番後ろが削られてしまいます。その場合は一番後ろに半角スペースを入れるとうまく表示されます。



	lsp 8,":s#FFFFFFNScripter ",50,100



また、間に半角スペースが2文字以上入るような文字列はうまく表示されません(半角スペースが省略される)。



※半角文字の使用は自分が勝手に発見して言っているだけなので、本当の機能ではありません。NScripterサポート外ですので気をつけてください。
■総括■
文字列のスプライトは非常に便利な機能です。
様々な場所で活用できると思います。

次へ   前へ   NScripterのIndexへ