write
文字を書きこむコマンドです。引数が多く、またスプライトの指定も通常から外れていますので、ずれないように注意してください。
※横書き専用です。
exec_dll "sp.dll/write,200,0,0,0,HGP創英角ポップ体,24,48,0,255,0,0,255,右代宮戦人" ; 200, 0 : スプライト番号200のセル番号0を書き込み対象とします。※マスク指定はありません。注意。 ; 0, 0 : 書き込みの左上位置を指定します。 ; HGP創英角ポップ体, フォント名を指定します。必ず指定して、間違えないようにしてください。 ; 24, 48, 0 : フォントのサイズです。横幅、高さ、文字間の指定です。横幅は高さの半分が基本です。英文指定です。 ; 255, 0, 0 : フォントの色です。この場合真っ赤を指定しています。 ; 255 : 文字のアルファブレンドです。255にすると不透明です。 ; 右代宮戦人 : 表示する内容です。
書込み先のスプライトがコピーかアルファブレンドかは自動で判別します。
文字列が長く、表示するとスプライトからはみ出てしまう場合は、そこで書き込みをやめるようになっています。
また、これにはgetretによる返り値があります。
getret $0 ; 与えられた文字列のうち、書き込みできなかった分の文字列が戻ってきます。 getret %0 ; 書き込んだ文字列領域の右端のx座標が戻ってきます。
$0に何か入っていれば、書き込みができなかったことがわかります。
%0を見れば、次はどこから書きこめばよいかの指針になります。
応用例
フォントに「@」で始まる縦書き用フォントを指定して作成します。
それを時計回りrotateさせます。
縦書きフォント | rotate |
---|---|
lsp 200,":a;>800,24,#FFFFFF",0,0 lsp 201,":a;>48,400,#FFFFFF",0,0 exec_dll "sp.dll/write,200,0,0,0,@HGP創英角ポップ体,12,24,0,255,0,0,255,右代宮戦人" exec_dll "sp.dll/rotate,200,0,0,201,0,0,1" exec_dll "sp.dll/rotate,200,0,1,201,0,1,1"
一応これで、縦書きも可能になります。