【csharp】マップ作成ツール、インポート、エクスポート機能

何はなくとも、保存と読込。

作ったマップレイアウトをバイナリファイルで保存、読込が出来るようにした。

保存形式は独自の形式で、拡張子は.gmpである。

データ仕様は下記のとおり。

タイルサイズ(Int32):4 byte (1 byte で十分だけど、まいっか)
素材行数(char):2 byte
素材列数(char):2 byte
マップ行数(Int32):4 byte
マップ列数(Int32):4 byte
コリジョンマップ(char[]):素材行数 × 素材列数 × 2byte
イベントマップ(Int32[]):素材行数 × 素材列数 × 4byte(2 byte で十分だけど、まいっか)
マップレイアウト(char[]):マップ行数 × マップ列数 × 2byte × 2

あまりデータサイズの圧縮は考えず、エンコード・デコードが楽な形にした。

マップチップの画像ファイルとは完全に独立したデータなので、画像だけを差し替えて、時間や季節の変化を表現するというくらいならできる。

32ピクセルのタイルで、100×100のマップだと、16 + 512 + 1024 + 10000 * 4 = 41552 = 約 41k バイト。

次回、コリジョンマップとイベントマップを配置する機能をいれたら、とりあえず必要なデータが作れるので、C++に戻ることにする。

4年前

コメントを残す

メールアドレスが公開されることはありません。