タイル背景

Last-modified: 2009-02-09 (月) 13:54:18

今回は、ゲームの背景などに用いられる背景画像の使用方法について説明していきます。
DSLuaでは初期化の際に使用する背景を選択しますが、背景用の関数群も用意されています。

 Screen.LoadTileBG()

を指定することで、上下左右にスクロールさせることの出来る背景を使用することが出来ます。

 

こちらについてもscriptsフォルダに画像が用意されているので利用する事にします。

  • map_examplescrn.bmp.pal
  • map_examplescrn.raw
  • map_examplescrn.map
    の3つが今回使用するファイル名になります。
    map_examplescrn.JPG
    ※今回も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番号

 

こちらは番号指定とドット指定が混在しているので注意してください。

 

コメント