標準コンソール上下設定+出力切替サンプル。


横になっても体調が優れず寝付けないのでまたサンプル投下します。
規模の小さいコードなら何とか書けるので。(−−;
標準コンソールの上下画面への設定と出力切替のサンプルです。

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