ShiftJISコードに準拠した順番で左上より右下へ並んでいる
フォントマップを利用しています。
http://www.softclub.co.jp/~zoro/k12x10/k12x10.gif
#図形文字(スペースを含めた表示される文字)のみのマップになっていますので
#「順番」が準拠しているだけです。
これを利用し、画面上に文字を描写させるためにサンプルスクリプトを書いてみました。
1バイト文字(半角英数)は容易に出来そうなので割愛し、2バイト(全角)文字の
表示を行おうと考えております。
まずは、フォントマップからフォントを正しく指定するために指定された文字コードから
フォントマップ上におけるX,Y座標を取得しなければなりません。
【スクリプト】
【EOS】
#define mx 1128 //フォントマップのXサイズ #define my 790 //フォントマップのYサイズ #define fx 12 //1文字のXサイズ #define fy 10 //1文字のYサイズ x = 0 y = 0 screen 0 : picload "k12x10.gif" st = "あいうえお" //文字列 sj = wpeek(st,0) //全角1文字取り出す sj -= (0x8120) //補正 y = ((sj*fx)/mx)*fy x = ((sj*fx)\mx) color 255,0,0 : line x,0,x,ginfo_winy : line 0,y,ginfo_winx,y
文字列変数stより0バイト目より2バイト分のデータを取得し(この場合は0x82A0)、
数値型変数sjに代入しています。
この変数sjをフォント座標X,Yの取得のため利用しているのですが、
リトルエディアンとして値が扱われてしまい、一筋縄ではいかなくなります。
アドレス0x00-0x01の各バイトを入れ替えることにより対処は可能ですが、
もし他に効率のよい方法がありましたらと思い、ご教授をお願いしようと思いました。
#ゲームなどで2バイトのオリジナルフォントを使用する機会も多いので、
#他の方はどうされているのかな、と考えていました。
よろしくお願いします。