MCPcopy
hub / github.com/liyupi/yulegeyu / genLevelRelation

Function genLevelRelation

src/core/game.ts:242–269  ·  view source on GitHub ↗
(block: BlockType)

Source from the content-addressed store, hash-verified

240 * @param block
241 */
242 const genLevelRelation = (block: BlockType) => {
243 // 确定该块附近的格子坐标范围
244 const minX = Math.max(block.x - 2, 0);
245 const minY = Math.max(block.y - 2, 0);
246 const maxX = Math.min(block.x + 3, boxWidthNum - 2);
247 const maxY = Math.min(block.y + 3, boxWidthNum - 2);
248 // 遍历该块附近的格子
249 let maxLevel = 0;
250 for (let i = minX; i < maxX; i++) {
251 for (let j = minY; j < maxY; j++) {
252 const relationBlocks = chessBoard[i][j].blocks;
253 if (relationBlocks.length > 0) {
254 // 取当前位置最高层的块
255 const maxLevelRelationBlock =
256 relationBlocks[relationBlocks.length - 1];
257 // 排除自己
258 if (maxLevelRelationBlock.id === block.id) {
259 continue;
260 }
261 maxLevel = Math.max(maxLevel, maxLevelRelationBlock.level);
262 block.higherThanBlocks.push(maxLevelRelationBlock);
263 maxLevelRelationBlock.lowerThanBlocks.push(block);
264 }
265 }
266 }
267 // 比最高层的块再高一层(初始为 1)
268 block.level = maxLevel + 1;
269 };
270
271 /**
272 * 点击块事件

Callers 1

genLevelBlockPosFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected