今回は、ゲームの背景などに用いられる背景画像の使用方法について説明していきます。
DSLuaでは初期化の際に使用する背景を選択しますが、背景用の関数群も用意されています。
Screen.LoadTileBG()
を指定することで、上下左右にスクロールさせることの出来る背景を使用することが出来ます。
こちらについてもscriptsフォルダに画像が用意されているので利用する事にします。
- map_examplescrn.bmp.pal
- map_examplescrn.raw
- map_examplescrn.map
の3つが今回使用するファイル名になります。 ※今回もJPEG画像にしてあります
(タイルチップ)123456 ■□▲△○●
122222221 122222221 122266221 122222221 111331111
タイル背景の使用方法
今回は共通でObjectにはScreen.LoadTileBG()で取得したオブジェクトを指定してください
スプライトと同様にまずはパレットを読み込みます。
Object:LoadPalette(PaletteFile)
PaletteFile……パレットファイル(.pal)を指定します
パレットを読み込んだら、次にタイルチップを読み込みます
Object:LoadTiles(RawFile, Mode)
RawFile……タイルファイル(.raw)を指定します
Mode……画像のカラーモード(16or256)を指定します
タイルチップまで読み込んだら、次がマップファイルです
Object:LoadMap(MapFile, Width, Height)
MapFile……マップファイル(.map)を指定します
Width……マップファイルの横幅
Height……マップファイルの縦幅
ここで注意しなければならないのがタイルチップが8×8サイズで分割されているということです。
つまり、ここでの横幅と縦幅は実際のサイズを8で割ったものになります。
以上の3つの関数を使用すればタイル背景を表示することが出来ます。
01:SCR_TOP = 1 02:SCR_BOT = 0 03: 04:BGTopTxt = Screen.LoadTextBG() 05:BGBotTile = Screen.LoadTileBG() 06: 07:width = 320 08:height = 240 09: 10:PFILE = "map_examplescrn.bmp.pal" 11:RFILE = "map_examplescrn.raw" 12:MFILE = "map_examplescrn.map" 13: 14:BGBotTile:LoadPalette(PFILE) 15:BGBotTile:LoadTiles(RFILE, 256) 16:BGBotTile:LoadMap(MFILE, width/8, height/8) 17: 18:Screen.Initialize(SCR_TOP, BGTopTxt) 19:Screen.Initialize(SCR_BOT, BGBotTile) 20: 21:BGTopTxt:SetColor(6) 22:BGTopTxt:PrintXY(0, 0, "press key to exit") 23: 24:DSLua.WaitForAnyKey()
こちらはただ表示するだけのサンプルです。
追加の関数
タイルの張替え
Object:SetMapTile(X, Y, TileNumber)
X……変更するタイルのX番号
Y……変更するタイルのY番号
TileNumber……新しいタイルの番号
背景のスクロール
Object:ScrollXY(X, Y)
X……表示するマップのX座標(ドット指定)
Y……表示するマップのY座標(ドット指定)
タイルの取得
Object:GetTile(X, Y)
X……取得するタイルのX番号
Y……取得するタイルのY番号
こちらは番号指定とドット指定が混在しているので注意してください。