5.マップ作製
タイル(画像)情報からマップを作成し、画面に表示する手順をまとめていきます。
・目次
1.GBMBダウンロード&配置
2.GBMBを使用してマップ作成
3.マップを表示
P1.タイル、マップファイルについて
1.GBMBダウンロード
以下の記事を参考にしました!
配置場所は任意
2.GBMBを使用してマップ作成
GBMB.EXEを起動し、基本操作を確認してみる
メニュー
└File
└Open・・・一度作成済みの".gbm"ファイルを開く
└Save・・・保存(マップ加工情報)
└Save As・・・新規ファイルで保存(マップ加工情報)
└Reopen・・・一度作成済みの".gbm"ファイルを開く(開きなおし)
└Map properties・・・タイルを読み込み、マップを作成
└Location properties・・・属性設定(別記事にてまとめ予定)
└Default Location properties・・・???
└Export・・・GBに表示する用のソースファイルを出力
└Export to・・・新規でソースファイル出力
└Exit・・・アプリ終了
└Edit
└Undo・・・直前操作を取り消す
└Cut・・・タイルをコピー、ペーストできる
└Copy・・・同上
└Paste・・・同上
└Copy as bitmap・・・不明(今度調べる)
└Design
└Pen・・・ペン(線画)
└Flood fill・・・バケツ(塗りつぶし)
└Dropper・・・スポイト
└Insert row・・・列追加
└Insert column・・・行追加
└Delete row・・・列削除
└Delete column・・・行削除
└Clear map・・・クリアする
└Block fill・・・上下左右を指定してタイルを置ける
└View
└Zoom・・・拡大縮小
└Info panel・・・画面下にセル番地と属性を確認できる
└Grid・・・ます目非表示
└Double markers・・・ますの境界線を強調
└Property Color・・・???
└Auto update・・・アップデート??(ファイル更新されたら反映??)
└Color set・・・色変更(プリセット)
└Set bookmark・・・ショートカットをカスタマイズ??
└Goto bookmark・・・ショートカットをカスタマイズ??
└Help・・・ヘルプ(開けない)
Map properties 時の設定内容
Size・・・マップのサイズを指定
Export to時の設定内容
Filename・・・ファイル名(ラベル名と同一のほうが分かりやすい)
Type・・・ファイルタイプ(拡張子) GBDK C FileでOK
Label・・・プログラム内で使用する関数名的なもの
Plane count・・・1 plane(8bit)を指定(理由は今度調べる)
Plane order・・・Planes are continuesを指定(理由は今度調べる)
3.マップを表示
以下のコードを"main.c"に記載しマップを表示させる
#include <gb/gb.h>
#include <stdint.h> //ライブラリ参照
#include "map.h"
// タイル単位のmapの位置
uint8_t map_pos_x, map_pos_y;
void main(){
DISPLAY_OFF; //画面停止
SHOW_BKG; //背景の表示ON
set_bkg_data(0, 241u,Taile); //タイルを背景にセット
map_pos_x = map_pos_y = 0;
//サブマップ32×32 マスを越えるタイルマップを設定できる。
set_bkg_submap(map_pos_x, map_pos_y, 20, 18, Map, MapWidth);//初期表示位置
DISPLAY_ON; //画面更新
◇解説
#include
#include //ライブラリ参照
#include "map.h"
→GBMBで作成したマップのソースファイル(map.h)を記載
uint8_t map_pos_x, map_pos_y;
→変数定義
DISPLAY_OFF;
→画面を停止
SHOW_BKG;
→背景の表示ON
set_bkg_data(0, 241u,Taile);
→タイルを背景にセット
map_pos_x = map_pos_y = 0;
→初期値代入
set_bkg_submap(map_pos_x, map_pos_y, 20, 18, Map, MapWidth);//初期表示位置
→submap関数で32×32 マスを越えるタイルマップを設定
DISPLAY_ON;
→画面更新
コンパイル結果(large_mapサンプルの背景を変更できました!)
P1.タイル、マップファイルについて
GBTD、GBMBを使用してタイル、マップを出力する場合、
タイル名、マップ名に【const】(定数宣言)が記載されないため、手動にて【const】を記載する。
以上!
次回はランダムエンカウントを実装し、バトルシーンに遷移しよう!