HarmonyOS应用开发实战:猫猫大作战-合并升级算法
·


前言
在「猫猫大作战」中,当检测到同级猫咪相邻时,合并后等级提升——SMALL(1) + SMALL(1) → MEDIUM(2)。利用枚举的数值特性,cat.level + 1 即可实现等级递增。
本文以 GameEngine.tryMergeAt() 中的等级提升逻辑为锚点,讲解合并升级算法。
提示:本系列不讲 ArkTS 基础语法与环境搭建,假设你已跟完第 1–125 篇。本篇是阶段四第 126 篇。
一、等级提升逻辑
1.1 核心代码
// 至少 MERGE_COUNT 个同等级邻居
if (sameLevelNeighbors.length >= GameConfig.MERGE_COUNT) {
const newLevel = (cat.level + 1) as CatLevel; // 等级 +1
const newCat: Cat = {
id: `cat_${this.catCounter++}`,
level: newLevel, // 升级后的等级
x: x, y: y,
falling: false
};
// ... 移除旧猫咪、放置新猫咪
}
1.2 等级链
SMALL(1) + SMALL(1) → MEDIUM(2)
MEDIUM(2) + MEDIUM(2) → LARGE(3)
LARGE(3) + LARGE(3) → XLARGE(4)
XLARGE(4) + XLARGE(4) → SUPER(5)
SUPER(5) + SUPER(5) → LEGENDARY(6)
二、限制最高等级
if (cat && !cat.falling && cat.level < CatLevel.LEGENDARY) {
// 传奇猫不能再升级
if (this.tryMergeAt(x, y)) { merged = true; }
}
三、总结
利用枚举的数值特性实现 level + 1 等级提升,配合边界检查限制最高等级。
核心要点:
(cat.level + 1) as CatLevel实现等级递增cat.level < CatLevel.LEGENDARY限制最高等级
下一篇预告:第 127 篇将深入连击窗口判定——COMBO_WINDOW 时间窗。
如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!
相关资源:
更多推荐


所有评论(0)