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

This commit is contained in:
unanmed 2026-10-17 21:24:07 +08:00
parent 3836afe5d9
commit 5be78db471
2 changed files with 11 additions and 3 deletions

View File

@ -1,6 +1,6 @@
# Flag 变量
Flag 系统(`state.flags`)是数据端提供的**全局可存档变量**。任何需要跨事件、跨楼层保留的简单状态,都可以存进 Flag;它会随存档一起保存与恢复。
有些状态要跨事件、跨楼层一直保留,还要跟着存档走——比如「Boss 是否已被击败」「这道门开过没有」「某处计数到了几」。这些状态放哪?Flag 系统(`state.flags`)就是数据端提供的**全局可存档变量**:任何需要跨事件、跨楼层保留的简单状态,都可以存进 Flag,它会随存档一起保存与恢复。
## 字段

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)。