HarmonyOS应用开发实战:猫猫大作战-LazyForEach 延迟加载

发布时间:2026/7/29 14:05:34
HarmonyOS应用开发实战:猫猫大作战-LazyForEach 延迟加载 前言在「猫猫大作战」中连击窗口决定了多长时间内的连续合并被视为连击。窗口太短玩家难以触发太长则连击过于容易。一、连击窗口private readonly COMBO_WINDOW 2000; // 2 秒 private updateCombo(): void { const now Date.now(); if (now - this.combo.lastMergeTime this.COMBO_WINDOW) { this.combo.count; this.combo.multiplier Math.min(this.combo.count, 5); } else { this.combo.count 1; this.combo.multiplier 1; } this.combo.lastMergeTime now; }二、窗口设计窗口长度效果感受1 秒极难触发只在高速合并时有2 秒当前适中正常操作可触发3 秒容易连击常态化5 秒极易连击失去奖励感三、UI 反馈// 连击窗口倒计时显示 State comboProgress: number 1.0; startComboTimer(): void { const interval setInterval(() { const elapsed Date.now() - this.combo.lastMergeTime; this.comboProgress Math.max(0, 1 - elapsed / 2000); if (this.comboProgress 0) { clearInterval(interval); this.comboProgress 0; } }, 100); }四、重置逻辑// 超时重置 private clearComboIfExpired(): void { if (Date.now() - this.combo.lastMergeTime this.COMBO_WINDOW) { this.combo { count: 0, multiplier: 1, lastMergeTime: Date.now() }; } } // 在游戏循环中周期检查 setInterval(() this.clearComboIfExpired(), 100);五、最佳实践窗口 2 秒平衡难度和收益UI 倒计时让玩家感知窗口还剩多少时间超时重置到期自动重置计数器总结连击窗口控制合并的有效时间范围2 秒窗口在难度和收益间取得平衡。核心要点COMBO_WINDOW 2000、Date.now()时间差计算、 超时自动重置。如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力相关资源GameEngine 源码第 126 篇level-up第 128 篇combo-multiplier第 129 篇score-formula