標準コンソール上下設定+出力切替サンプル。
横になっても体調が優れず寝付けないのでまたサンプル投下します。
規模の小さいコードなら何とか書けるので。(−−;
標準コンソールの上下画面への設定と出力切替のサンプルです。
void consoleSelect(PrintConsole* console);
consoleInit 関数などで初期化して得たコンソール設定情報を引数で渡すことにより 描画対象となるコンソールを切替ることができます。
この関数を利用することにより、下記で紹介するコンソールの上下切替や
同一画面上での複数コンソール(BG 別)を切替制御することができます。
複数コンソールは一見必要のないものに思えますが
例えばメッセージの種類によってフォントデザインを別物にしたいようなときに使えるかも知れません。
(まあ普通ならこんな贅沢なマネはしないで、
単一BGで必要文字のみのフォント数種を持っていて、
必要に応じてフォントの描画処理をするものだと思いますが。^^;)
libnds console, Main/Sub screen draw sample
main.c
/*--------------------------------------------------------------------------------- libnds console, Main/Sub screen draw sample version 0.01 Oct 31, 2009 By. REGEKATSU ---------------------------------------------------------------------------------*/ #include <nds.h> #include <stdio.h> //--------------------------------------------------------------------------------- int main(void){ //--------------------------------------------------------------------------------- //createConsoleStatus PrintConsole top_console, bottom_console; //initVideoMode videoSetMode(MODE_0_2D); videoSetModeSub(MODE_0_2D); //initVRAMBank vramSetBankA(VRAM_A_MAIN_BG); vramSetBankC(VRAM_C_SUB_BG); //initConsole top_console = *consoleInit(0, 0, BgType_Text4bpp, BgSize_T_256x256, 0, 1, true, true); bottom_console = *consoleInit(0, 0, BgType_Text4bpp, BgSize_T_256x256, 0, 1, false, true); //firstSetTopScreen consoleSelect(&top_console); while(1) { swiWaitForVBlank(); printf("."); scanKeys(); //printSetTopScreen if(keysDown() & KEY_UP) consoleSelect(&top_console); //printSetBottmScreen else if(keysDown() & KEY_DOWN) consoleSelect(&bottom_console); } } //---------------------------------------------------------------------------------
プロジェクト一式は下記 URL からダウンロードすることができます。
ttp://page.freett.com/ntr/example/consds.zip