ページ 11

特定のIDのタイル配置

Posted: 2024年6月15日(土) 12:46
by ppp
質問失礼します。ダンジョン生成プラグインを制作しているのですが

コード: 全て選択

    Game_RogueLikeMap.prototype.setTile = function(tileId, x, y, z = 0){
        for (var layer = 0; layer < 6; layer++) {
		    $dataMap.data[(layer * $dataMap.height + y) * $dataMap.width + x] = tileId === 0 ? 0 :zTilemap.TILE_ID_A1 + tileId;
        }
	};
でタイルAのタイルを配置しようとしているのですが 。うまくいきません。タイルIDを適切に指定するには、どうすればよいでしょうか?

Re: 特定のIDのタイル配置

Posted: 2024年6月15日(土) 19:56
by 名無し蛙
貴方が考える「タイルID」と仕様として定義されている「タイルID」に齟齬がある感じがしますね
そもそも「なんでfor文?」って思いますけど
昔、タイル仕様のメモ書きを書き残した方がいらっしゃったけど
マップ自動生成プラグインを作りたいならこの辺の知識は必須になるでしょう

例えばA1の一番左上のオートタイルの「左上部分」のタイルIDは
「(セットの開始番号) + (種別ID) * 48 + (形状ID)」の式に当てはめると
2048 + 0 * 48 + 34 = 2082という事になります

マップデータの指定方法も記載されていますけど
index = x + (y * width) + (z * width * height);
なのでこれに合わせて変更してください。式を変形させて
(z * height + y) * width + x
でも良いです。

Re: 特定のIDのタイル配置

Posted: 2024年6月15日(土) 20:06
by ppp
丁寧に教えてくださりありがとうございます!試してみます