特定のIDのタイル配置

返信する
ppp
記事: 48
登録日時: 2022年9月28日(水) 21:50

特定のIDのタイル配置

投稿記事 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を適切に指定するには、どうすればよいでしょうか?
名無し蛙
記事: 352
登録日時: 2015年11月23日(月) 02:46

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

投稿記事 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
でも良いです。
ppp
記事: 48
登録日時: 2022年9月28日(水) 21:50

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

投稿記事 by ppp »

丁寧に教えてくださりありがとうございます!試してみます
返信する

“MV:質問”に戻る