* Get UV coordinates for a tile * 获取 tile 的 UV 坐标 * * 使用 UVHelper 计算 OpenGL 纹理坐标。 * Uses UVHelper to calculate OpenGL texture coordinates. * * @see UVHelper.calculateTileUV for coordinate system documentation * @param tilesetIndex Tileset index | Tileset 索引 *
(tilesetIndex: number, localTileId: number)
| 998 | * @returns [u0, v0, u1, v1] OpenGL UV coordinates, or null if invalid |
| 999 | */ |
| 1000 | getTileUV(tilesetIndex: number, localTileId: number): [number, number, number, number] | null { |
| 1001 | if (localTileId <= 0) return null; |
| 1002 | |
| 1003 | const tilesetData = this.getTilesetData(tilesetIndex); |
| 1004 | if (!tilesetData) { |
| 1005 | console.warn('[TilemapComponent] getTileUV: No tileset data for index', tilesetIndex); |
| 1006 | return null; |
| 1007 | } |
| 1008 | |
| 1009 | // Use UVHelper for coordinate calculation |
| 1010 | // 使用 UVHelper 计算坐标 |
| 1011 | return UVHelper.calculateTileUV(localTileId - 1, { |
| 1012 | columns: tilesetData.columns, |
| 1013 | tileWidth: tilesetData.tileWidth, |
| 1014 | tileHeight: tilesetData.tileHeight, |
| 1015 | imageWidth: tilesetData.imageWidth, |
| 1016 | imageHeight: tilesetData.imageHeight, |
| 1017 | margin: tilesetData.margin, |
| 1018 | spacing: tilesetData.spacing |
| 1019 | }); |
| 1020 | } |
| 1021 | |
| 1022 | // ===== Resize | 大小调整 ===== |
| 1023 |
no test coverage detected