件のスレのGENKIさんのコードを改造して、日本語等の全角文字に対応させてみました。
UTF-16では半角文字も全角文字も1文字としてカウントされるのを利用しています。
#include "kernel32.as"
#include "user32.as"
dim rect,4
rect=0,0,640,480 //rectには表示させたい領域の左上X座標、左上Y座標、右下X座標、右下Y座標を入れる
a="いろはにほへとちりぬるを\nわかよたれそつねならむ\nうゐのおくやまけふこえて\nあさきゆめみしゑひもせす"
sdim a16,strlen(a)*2+2 : cnvstow a16,a //UTF-16に変換
frmwait = 6 //表示スピード(frmwaitフレームおきに文字を増やす)
c = 0 //表示する文字数
lstrlenW varptr(a16) : c_max=stat //UTF-16に変換した文字列の文字数を求める(UTF-16では半角文字も全角文字も1文字)
end_flag=0 //文字表示を終了したフラグ
repeat
await 30
if end_flag : continue
if cnt\frmwait=0 {
c++
redraw 0
color 255,255,255 : boxf rect(0),rect(1),rect(2)-1,rect(3)-1
color 0
//DrawTextWはUTF-16の文字列を表示するAPI(実行後redraw 1を実行する必要あり)
// https://www.tokovalue.jp/function/DrawText.htm
DrawTextW hdc,varptr(a16),c,varptr(rect),0
redraw 1,rect(0),rect(1),rect(2),rect(3)
if c=c_max : end_flag=1
}
loop