docs(10-10): 引导式重写 map-tiles、flags

This commit is contained in:
AncTe committed 2026-10-17 21:24:07 +08:00
1 parent 3836afe5d9
commit 5be78db471
2 files changed
+11 -3

No files matched your search

+10 -2
View File
@@ -1,10 +1,10 @@
# 地图图块
地图图块存放在图层(`IMapLayer`)上。本篇讲解图块的读取、写入、批量操作与迭代,接口都定义在图层的静态部分(`ILayerStatic`)。
想在地图上摆一格、擦掉一格,或者整片地读写图块,该找谁?答案是**图层**——地图图块存放在图层(`IMapLayer`)上,图块的读取、写入、批量操作与迭代都由图层负责。这些接口都定义在图层的静态部分(`ILayerStatic`)。
## 取到图层
图块操作针对图层。你可以从楼层的 `layerList` 中取到图层,事件层则通过 `eventLayer` 取得:
图块操作针对图层,所以第一步是拿到图层对象。你可以从楼层的 `layerList` 中取到图层,事件层则通过 `eventLayer` 取得:
```ts
const map = state.maps.getMap('floor-1')!;
@@ -13,8 +13,12 @@ for (const layer of map.layerList) {
}
```
楼层的三层结构见[地图结构](./map-structure.md)。
## 读取与写入单点
单格操作有三个接口:
- `getBlock(x, y)`:取指定点的静态图块数字(无图块返回 0,不在地图上返回 -1);
- `setBlock(block, x, y)`:设置指定点的静态图块;
- `removeBlock(x, y)`:移除指定点的静态图块。
@@ -27,6 +31,8 @@ layer.removeBlock(3, 5);
## 批量读写
要一次处理一片区域,用批量接口:
- `putMapData(array, x, y, width)`:把一维数组写入地图,数组第一项对应 `(x, y)`,`width` 为矩形范围的宽度;
- `getMapData()`:取整张地图的图块数组;
- `getMapData(x, y, width, height)`:取指定矩形区域的图块数组。
@@ -47,4 +53,6 @@ for (const block of layer.iterateBlocks()) {
}
```
若需要读取某一点的全部图块信息(静态、动态、事件等),图层还提供 `getLocationData(x, y)`;它面向更底层的需求,留到高级教程。
图层与事件层的结构见[地图结构](./map-structure.md);想从 `state` 出发找到地图对象,见[数据端总览](./data-state-overview.md)。