にゃごすwiki

DSLua/ref/screen

画面初期化関数

これらの関数は、バックグラウンドをテキストBGや8bitBG、タイルBG等に描画するために必要です。

Screen.LoadTextBG() 
Screen.Load8BitBG() 
Screen.LoadTileBG() 
Screen.LoadKeyboardBG() 
Screen.Load16BitBG() 
Screen.Initialize() 
Screen.WaitForVBL() 

 Screen.LoadTextBG()

BGをテキスト用に初期化します。
戻り値としてテキストBGオブジェクトを返します。
テキストBGオブジェクトのメソッドとしてテキストBG関数が使用できます。

 Screen.Load8BitBG()

BGを8bitBG用に初期化します。
戻り値として8bitBGオブジェクトを返します。
8bitBGオブジェクトのメソッドとして8bitBG関数が使用できます。

 Screen.LoadTileBG()

BGをタイルBG用に初期化します。
戻り値としてタイルBGオブジェクトを返します。
タイルBGオブジェクトのメソッドとしてタイルBG関数が使用できます。

 Screen.LoadKeyboardBG()

BGをキーボード表示用に初期化します。
戻り値としてキーボードオブジェクトを返します。
キーボードオブジェクトのメソッドとしてキーボード関数が使用できます。
(未確認だが、ソースがコメントされているので使用できないと思われる。)

 Screen.Load16BitBG()

BGを16bitBG用に初期化します。
戻り値として16bitBGオブジェクトを返します。
16bitBGオブジェクトのメソッドとして16biyBG関数が使用できます。

 Screen.Initialize( screen, background1 [, background2, ...] )

上記の Load**BG() 関数で取得したBGオブジェクトをこの関数で上下の画面に割り当てます。
screen は初期化をする画面を指定します。1なら上画面、0なら下画面です。
background1 にはscreenで指定した画面に表示するBGオブジェクトを指定します。(上記の Load**BG() 関数で取得したオブジェクトです。)
1枚以上のBGを重ねて表示する場合には、background1に続けて background2,3と記述します。左側に書いた方(この例ではbackground1)が上に重なります。

 Screen.WaitForVBL()

垂直帰線期間に入るまで処理を停止します。DSでは、垂直帰線期間は1秒間に60回です。

サンプル

テキストBGを上下画面に表示してみるテスト(成功)

bgtxt1 = Screen.LoadTextBG();
bgtxt2 = Screen.LoadTextBG();
Screen.Initialize( 0, bgtxt1 )
Screen.Initialize( 1, bgtxt2 )
bgtxt1:SetColor( 0 );
for i=0,20,1 do
	bgtxt1:PrintXY(0,i, "BackGround 1" )
end
bgtxt2:SetColor( 2 );
for i=2,20,1 do
	bgtxt2:PrintXY(2,i, "BackGround 2" )
end


テキストBGを複数枚重ねてみるテスト(失敗:できないらしい)

bgtxt1 = Screen.LoadTextBG();
bgtxt2 = Screen.LoadTextBG();
bgtxt3 = Screen.LoadTextBG();
bgtxt4 = Screen.LoadTextBG();
Screen.Initialize( 0, bgtxt1, bgtxt2, bgtxt3, bgtxt4 )

bgtxt1:SetColor( 0 );
for i=0,20,1 do
	bgtxt1:PrintXY(0,i, "BackGround 1" )
end
bgtxt2:SetColor( 2 );
for i=2,20,1 do
	bgtxt2:PrintXY(2,i, "BackGround 2" )
end
bgtxt3:SetColor( 4 );
for i=4,20,1 do
	bgtxt2:PrintXY(4,i, "BackGround 3" )
end
bgtxt4:SetColor( 6 );
for i=6,20,1 do
	bgtxt2:PrintXY(6,i, "BackGround 4" )
end
DSLua.WaitForAnyKey()