LeoGetAAdr.htm
3.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<HTML>
<HEAD><TITLE>Manual for LeoGetAAdr, LeoGetAAdr, LeoGetAAdr2</TITLE></HEAD>
<BODY>
<P>
<B><FONT FACE="Arial">LeoGetKAdr(3P) LeoGetAAdr(3P) LeoGetAAdr2(3P)</FONT> <BR>
</B>
<P>
<B>関数名</B>
<P>
LeoGetKAdr, LeoGetAAdr, LeoGetAAdr2
<P>
→ 文字の格納アドレスを得る<BR>
</FONT>
<P>
<B>構文</B>
<PRE>
<FONT SIZE=4>#include<PR/leo.h>
int LeoGetKAdr(int <U>sjis</U>);
int LeoGetAAdr(int <U>code</U>, int *<U>dx</U>, int *<U>dy</U>, int *<U>cy</U>);
int LeoGetAAdr2(int <U>ccode</U>, int *<U>dx</U>, int *<U>dy</U>, int *<U>cy</U>);
</FONT>
</PRE>
<P>
<B>説明</B>
<P>
64DD内部にあるマスクロム(DDROM)には、さまざまな種類の漢字やアスキー文字のフォントが入っています。
アプリケーションプログラマはこれらの関数を用いて目的の文字の格納アドレスを得ることができます。
<BR>
<P>
<B>LeoGetKAdr</B>はシフト JISのコード<u>sjis</u>から漢字の格納オフセットアドレスを得ます。<BR><P>
シフトJISのコードは、16進数で下 2 桁が 0x40 〜 0x7e , 0x80 〜 0xfc の値をとります。
なお、64DDプログラミングマニュアル「APPENDIX B ドライブ内蔵フォントデータについて」では、コードが16進数で下 2 桁が 0x7f, 0xfd, 0xfe, 0xff のところは、空白になっていますが、これは空白文字という意味ではありません。これらのコードに対する文字は用意されていないということです。
もし、これらのコードを指定した場合、どんな文字が表示されるか、保証できません。
<BR>
なお、空白文字を使用する場合には、コード 0x8140 をご使用ください。
<BR><P>
<u>sjis</u>の値に 0x8140 から 0x9872 までの範囲に含まれない値を指定したときには、エラーとして返り値に -1 が返ります。<BR>
<P>
<B>LeoGetAAdr</B>はキャラクタコード<u>code</u>からアスキー文字の格納オフセットアドレスを得ます。
<U>dx</U>に文字の幅、<U>dy</U>に文字の高さ、<U>cy</U>に上下方向中心位置が入ります。
<BR>
<u>code</u>の値に 0 から 0x907 までの範囲に含まれない値を指定したときには、エラーとして返り値に -1 が返ります。<BR>
具体的にどのキャラクタコードがどんな文字に対応するかは、64DDプログラミングマニュアル「APPENDIX B ドライブ内蔵フォントデータについて」を参照してください。
<BR>
<P>
<B>LeoGetAAdr2</B>は文字情報データ<u>ccode</u>からアスキー文字の格納オフセットアドレスを得ます。
<U>dx</U>に文字の幅、<U>dy</U>に文字の高さ、<U>cy</U>に上下方向中心位置が入ります。
<BR>
文字情報データはキャラクタコードをもとに<A HREF="../tool/asccode.htm">asccode</A>を用いて得られるデータです。
<BR>
<P>
<B>LeoGetAAdr</B>を使用すると、全部の文字に関するテーブルをリンクします。
ゲーム内で使用する文字が限られている場合は<B>LeoGetAAdr2</B>を使用する方がサイズが小さくなります。
<B>LeoGetAAdr</B>はすべての文字を使用する場合(メニュー形式ですべての文字を表示してゲームユーザが名前を入力する場合等)に使用するとよいでしょう。
<BR>
<P>
ここでいう“オフセット”というのは、DDROMのフォント部分からのオフセットのことで、
この数字をDDROMの先頭からのオフセットになおすにはDDROM_FONT_STARTを加えなければいけません。
<A HREF="../os/osEPiStartDma.htm">osEPiStartDma</A>(3P)にはこの加えた後の数字を渡さなければいけません。
<BR>
<P>
<U>dx</U>, <U>dy</U>, <U>cy</U> の意味に関しては、64DDプログラミングマニュアル「9.1
フォントデータ」を参照してださい。
<P>
<B>参照</B>
<P>
<A HREF="LeoCreateLeoManager.htm">Leo*CreateLeoManager</A>(3P),
<A HREF="../tool/asccode.htm">asccode</A>(1P)
<HR>
<P>
<A HREF="64dd_INDEX.htm">64DDのマニュアルページのメニューへ</A>
<P>
<A HREF="../n64man.htm">N64のマニュアルページのトップメニューへ</A>
<P>
</BODY>
</HTML>