2011年08月17日のツイート

縦書きの一手法

縦書きフォントを使って縦書き文字列スプライトを表示する方法。

*define
rubyon
deletemenu
game
*start
spfont "@MS ゴシック",24,24,0,0,0,0
lsph 0,":s/24,24,0;#FFFFFF日本語",100,100
strsph 1,"(日本語/にほんご)\(英語/えいご)",200,200,10,10,24,24,0,24,0,0,#FFFFFF
print 1
getspsize 1,%0,%1
%0:%1\
drawsp2 1,0,255,320,240,100,100,-90
draw
click
end
  1. spfontで文字スプライトのフォントを縦書きのそれに設定する。
  2. strsphで見えないように日本語の文章を作る。
  3. drawsp2で-90度回転させて表示する。

これだけで縦書き文字列が作れる。
nsluaのNSCALL_textと組み合わせることで、縦書きフォントによる出力が可能になるだろう。
ルビにも対応しているので、らくちん。
ただし、drawsp2を使っているので、

  1. 座標の指定が中心点になるので、位置指定に注意
  2. 何かprint的なものをやったら消えるので、消えないようにするなんらかの処理が必要。

スプライト操作DLLマニュアル - 永字八法を使っていいのなら、draw系は使わずに、strsphで作ったスプライトをrotateさせて別スプライトにコピーし、そちらを表示状態にしておくことか。

縦書きの一手法

縦書きフォントを使って縦書き文字列スプライトを表示する方法。

*define
rubyon
deletemenu
game
*start
spfont "@MS ゴシック",24,24,0,0,0,0
lsph 0,":s/24,24,0;#FFFFFF日本語",100,100
strsph 1,"(日本語/にほんご)\(英語/えいご)",200,200,10,10,24,24,0,24,0,0,#FFFFFF
print 1
getspsize 1,%0,%1
%0:%1\
drawsp2 1,0,255,320,240,100,100,-90
draw
click
end
  1. spfontで文字スプライトのフォントを縦書きのそれに設定する。
  2. strsphで見えないように日本語の文章を作る。
  3. drawsp2で-90度回転させて表示する。

これだけで縦書き文字列が作れる。
nsluaのNSCALL_textと組み合わせることで、縦書きフォントによる出力が可能になるだろう。
ルビにも対応しているので、らくちん。
ただし、drawsp2を使っているので、

  1. 座標の指定が中心点になるので、位置指定に注意
  2. 何かprint的なものをやったら消えるので、消えないようにするなんらかの処理が必要。

スプライト操作DLLマニュアル - 永字八法を使っていいのなら、draw系は使わずに、strsphで作ったスプライトをrotateさせて別スプライトにコピーし、そちらを表示状態にしておくことか。

2011年08月17日のツイート

縦書きの一手法

縦書きフォントを使って縦書き文字列スプライトを表示する方法。

*define
rubyon
deletemenu
game
*start
spfont "@MS ゴシック",24,24,0,0,0,0
lsph 0,":s/24,24,0;#FFFFFF日本語",100,100
strsph 1,"(日本語/にほんご)\(英語/えいご)",200,200,10,10,24,24,0,24,0,0,#FFFFFF
print 1
getspsize 1,%0,%1
%0:%1\
drawsp2 1,0,255,320,240,100,100,-90
draw
click
end
  1. spfontで文字スプライトのフォントを縦書きのそれに設定する。
  2. strsphで見えないように日本語の文章を作る。
  3. drawsp2で-90度回転させて表示する。

これだけで縦書き文字列が作れる。
nsluaのNSCALL_textと組み合わせることで、縦書きフォントによる出力が可能になるだろう。
ルビにも対応しているので、らくちん。
ただし、drawsp2を使っているので、

  1. 座標の指定が中心点になるので、位置指定に注意
  2. 何かprint的なものをやったら消えるので、消えないようにするなんらかの処理が必要。

スプライト操作DLLマニュアル - 永字八法を使っていいのなら、draw系は使わずに、strsphで作ったスプライトをrotateさせて別スプライトにコピーし、そちらを表示状態にしておくことか。

2011年08月17日のツイート