ruby仕様確認

こういうスクリプトを作った。

00.txt

*define

deletemenu
rubyon
textgosub *click_wait

game

*start
csvopen "pos.txt","w"
setwindow 10,10,20,20,24,24,0,12,0,1,1,#ffffff,0,0,639,479
「私の名前は、(潦/に)景子です」@
「私の名前は、(潦/にわ)景子です」@
「私の名前は、(潦/にわた)景子です」@
「私の名前は、(潦/にわたず)景子です」@
「私の名前は、(潦/にわたずみ)景子です」@
getscreenshot 640,480
savescreenshot "shot.bmp"
end

*click_wait
	getcursorpos %100,%101
	csvwrite %100,%101
	br
	click
return

実行結果画面はこうなった。

画面


なので、これによって作成されたpos.txtの中身、カーソルのx座標はきれいに増えていっているんだろうな、と思ったら。

pos.txt

322,10
322,46
322,82
346,118
346,154

おいおい、x座標が変化しとらんじゃないか。
これはつまり、getcursorposで得られる数値は、実際の表示開始位置ではなく、計算式で得られた近似値であると言うことがわかる。
次はこんなスクリプト

00.txt

*define

deletemenu
rubyon
textgosub *click_wait

game

*start
csvopen "pos.txt","w"
setwindow 16,10,25,20,24,24,0,12,0,1,1,#ffffff,0,0,639,479
寿限無@寿限無@五劫の@擦り切れ@海砂利@水魚の@水行末@雲来末@風来末@食う寝る処に@住む処@やぶら小路の@藪柑子@パイポパイポ@パイポのシューリンガン@シューリンガンのグーリンダイ@グーリンダイのポンポコピーのポンポコナーの@長久命の長助@
br
(寿限無/じゅげむ)@(寿限無/じゅげむ)@(五劫/ごこう)の@(擦/す)り(切/き)れ@(海砂利/かいじゃり)@(水魚/すいぎょ)の@(水行末/すいぎょうまつ)@(雲来末/うんらいまつ)@(風来末/ふうらいまつ)@食う寝る(処/ところ)に@住む(処/ところ)@やぶら(小路/こうじ)の@(藪柑子/ぶらこうじ)@パイポパイポ@パイポのシューリンガン@シューリンガンのグーリンダイ@グーリンダイのポンポコピーのポンポコナーの@(長久命/ちょうきゅうめい)の(長助/ちょうすけ)@
getscreenshot 640,480
savescreenshot "shot.bmp"
end

*click_wait
	getcursorpos %100,%101
	csvwrite %100,%101
	click
return

実行結果


ルビの方が文字よりも長かったりすると、表示が崩れやすいので注意が必要だね。

pos.txt

参考までに。

88,10
160,10
232,10
328,10
400,10
472,10
544,10
16,46
88,46
232,46
304,46
448,46
520,46
64,82
328,82
64,118
568,118
112,154
88,190
160,190
232,190
328,190
400,190
472,190
544,190
88,226
160,226
304,226
376,226
520,226
88,262
232,262
496,262
232,298
136,334
304,334

ちなみに。

@をあいだに挟まずに一気に表示すると、きれに表示される。