
#include <sys/bios.h>
void main(void)
{
text_set_screen(SCREEN2); @テキスト表示スクリーンの指定
text_screen_init(); Aスクリーンをテキスト用に設定
text_put_string(5, 5, "Hello Wonder Swan !!"); B指定位置に文字表示
key_wait();
}
|
@text_set_screen(SCREEN2) スクリーン2を文字表示用にします。 Atext_screen_init()
スクリーンには横28、縦18のキャラクタ(文字)を表示できます。text_screen_init()が
実行されると、キャラクタフォント番号「8〜511」(28×18=504個)の『空白』
のキャラクタがスクリーンに敷き詰められます。
Btext_put_string(5, 5, "Hello Wonder Swan !!");
キャラクタ座標の横5,縦5の位置から「Hello Wonder Swan!!」の文字を表示します。
ワンダースワンに使われている文字は、8x8 ドットのフリー日本語フォント
「恵梨沙フォント」
です。
|
#include <sys/bios.h>
unsigned char bmp_m[] = {
0x3C, 0x7E, 0x93, 0xDB, 0xFF, 0xFF, 0xFF, 0xDB
};
void main(void)
{
text_set_screen(SCREEN2);
text_screen_init();
text_put_string(5, 5, "Hello Wonder Swan !!");
font_set_monodata(8, 1, bmp_m);
key_wait();
}
|
|
![]()
|
スクリーンに数値(整数値)を表示するには text_put_numeric 関数を使います。 text_put_numeric(X座標, Y座標, 表示桁数, フォーマット, 数値) フォーマットは図のようなビットパターンの組み合わせで指定します。 実際にはtext.hの中で次のように定義されていますので、これを組み合わせて使用します。 #define NUM_HEXA 0x01 #define NUM_PADZERO 0x02 #define NUM_PADSPACE 0x00 #define NUM_ALIGN_LEFT 0x04 #define NUM_ALIGN_RIGHT 0x00 #define NUM_SIGNED 0x08 #define NUM_STORE 0x80表示できるのは整数値のみです。 |
#include <sys/bios.h>
void main(void)
{
int a=255;
double b=3.141592;
text_set_screen(SCREEN2);
text_screen_init();
text_put_numeric(5, 2, 5, 0, a);
text_put_numeric(5, 3, 5, NUM_HEXA, a);
text_put_numeric(5, 4, 5, NUM_HEXA | NUM_PADZERO, a);
text_put_numeric(5, 6, 5, 0, b);
key_wait();
}
![]() |
この例のように、スクリーンの指定した範囲をテキスト表示用に初期化するには text_window_init を使用します。 text_window_init(横開始位置,縦開始位置,横幅,縦幅,ベースフォント)
ベースフォントはスクリーンに敷き詰めるキャラクタフォント番号の最初の
数値を指定します。この例では、ブロックのキャラクタで4番までを使用
しているので、「5番」以降を指定しています。 |
#include <sys/bios.h>
#include "block.h"
unsigned block[] = {1,2,3,4};
void main()
{
int x,y;
font_set_colordata(1, 2*2, bmp_block);
for(y=0;y<18;y+=2)
for(x=0;x<28;x+=2)
screen_set_char(SCREEN2, x, y, 2 , 2 , block); /* ブロックを敷き詰める */
text_window_init(2, 12, 24, 5, 5); /* テキストウインド初期化 */
text_put_string(1, 1,"西暦20XX年。");
text_put_string(1, 2,"ワンダースワンの物語が今、始まる・・・");
key_wait();
}