HarmonyOS应用开发实战:猫猫大作战-排序在下落算法中的关键作用
前言在重力下落算法中排序顺序至关重要——必须先处理底部的猫咪再处理顶部的否则会出现“穿透“现象。Array.sort()配合比较函数实现自定义排序。本文以GameEngine.updateCats()中的sort((a,b) b.y - a.y)为锚点讲解排序在下落算法中的关键作用。提示本系列不讲 ArkTS 基础语法与环境搭建假设你已跟完第 1–122 篇。本篇是阶段四第 123 篇。一、底部优先排序1.1 排序代码const sortedCats Array.from(this.cats.values()) .filter(cat cat.falling) .sort((a, b) b.y - a.y); // y 从大到小底部优先1.2 为什么要底部优先初始状态 底部优先处理 y0 [A] y3 [C] → 已到底部 y1 [B] y2 [D] → 碰撞检测正常 y2 [D] y1 [B] → 落在 D 上方 y3 [C] → 底部 y0 [A] → 落在 B 上方 如果顶部优先a.y - b.y y0 [A] → 移到 y1但 [B] 还在原位 → 穿透A 和 B 重叠二、总结sort 排序确保底部优先处理避免下落过程中的穿透问题。核心要点sort((a,b) b.y - a.y)底部优先先处理底部猫咪避免穿透下一篇预告第 124 篇将深入 forEach 遍历更新——迭代修改实战。如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力相关资源Array.sort MDN 文档开源鸿蒙跨平台社区第 122 篇碰撞检测第 124 篇forEach 遍历