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を見れば、次はどこから書きこめばよいかの指針になります。

実行例

形式 加工前 加工後
:a;に書き込んだ場合
:c;に書き込んだ場合

応用例

フォントに「@」で始まる縦書き用フォントを指定して作成します。
それを時計回り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"

一応これで、縦書きも可能になります。