テレセット、テレマップ、パレット
目的
私たちの目的は、スクリーンショットのようにタイルマップを再作成することですが、タイルセットとタイルマップは異なります。タイルマップには透明なタイルがあり、透明なタイルの背後に背景が表示されます。デモのスクリーンショットには、タイルセットに2つのタイルのみがあり、背景はなく、小さなパレットがあります。背景パレットで背景を追加し、新しいタイルマップを追加します。
古いタイルマップ
以前から。
#include <string.h>
#include <maxmod.h>
#include "toolbox.h"
#include "input.h"
#include "backgrounds/autumnBackground.h"
#include "backgrounds/winterBackground.h"
#include "backgrounds/springBackground.h"
#include "backgrounds/summerBackground.h"
#include "tilesets/seasonsTileset.h"
#include "tilemaps/springMap.h"
#include "soundbank.h"
#include "soundbank_bin.h"
#define IRQ_VBLANK 0x001
// マップのサイズ
#define MapWidth 256
#define MapHeight 256
// マップを画面エントリの配列 (16 ビット値) として解釈する
u16 *my_map = (u16*)(autumnBackgroundMap);
// GBA スクリーンブロックのサイズ
#define SbWidth 32
#define SbHeight 32
int map_x = 0;
int map_y = 0;
// これらを変更して、マップの別の部分をロードします。
int map_offset_x = 0;
int map_offset_y = 0;
// コピー先のスクリーンブロック
const int sbb = 30;
地図の読み込み
これは、マップをセクションにロードするための関数です。
void load_map() {
for (int y = 0; y < SbHeight; y++) {
for (int x = 0; x < SbWidth; x++) {
// マップ内の座標を把握する
map_x = map_offset_x + x;
map_y = map_offset_y + y;
//se_mem[sbb][x + y*SbWidth] |= SE_PALBANK(0);
se_mem[sbb][x + y*SbWidth] = my_map[map_x + map_y * MapWidth];
}
}
}
バックグラウンド
背景画像は分割され、タイルマップとして表示されます。
背景を追加します。
#define BackgroundLayer 0
void background()
{
// パレットをロード
memcpy(pal_bg_mem, autumnBackgroundPal, autumnBackgroundPalLen);
// タイルを CBB 0 にロードする
memcpy(&tile_mem[0][31], autumnBackgroundTiles, autumnBackgroundTilesLen);
// SBB 30にマップをロード
//load_map();
memcpy(&se_mem[30][0], autumnBackgroundMap, autumnBackgroundMapLen);
for (int i=0; autumnBackgroundMapLen; i++)
se_mem[30][i] |= SE_PALBANK(0);
// charblock 0 と screenblock 31 を使用して、
//4bpp 64x32px マップ用に BG0 を設定します
REG_BG0CNT= BG_CBB(0) | BG_SBB(30) | BG_4BPP | BG_REG_32x32;
}
タイルセット
これが使用するタイルセットです
タイルセット。
テレマップ
これが使用するタイルマップです。 Usenti で開き、.c または .h ファイルとしてエクスポートします。
背景を追加します。
エクスポート設定「Usenti」
エクスポート設定「Usenti」
TilemapStudio
タイルマップは、Windows 用のタイルマップ エディターである Tilemap Studio を使用して作成できます。
背景を追加します。
Tiled
また、「Tiled」mapeditor.orgを使用することができます
背景を追加します。
インクルード
インクルードを追加することから始めます。