#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(); }