HarmonyOS应用开发实战:猫猫大作战-Math.pow 与指数运算
前言在「猫猫大作战」中重力下落是猫咪从棋盘顶部向下移动的物理模拟。猫咪在重力作用下逐行下落直到碰到已着陆的猫咪或棋盘底部。一、重力下落privateupdateGravity():void{constallCatsthis.getAllCats();for(constcatofallCats){if(!cat.falling)continue;// 计算落点constlandingYthis.findLandingY(cat.x,cat.y);if(cat.ylandingY){cat.y;// 下落 1 行}else{cat.fallingfalse;// 着陆// 着陆后检测合并this.tryMergeAt(cat.x,cat.y);}}}privatefindLandingY(x:number,startY:number):number{for(letystartY1;yGameConfig.BOARD_HEIGHT;y){if(this.board[y][x]!null){returny-1;}}returnGameConfig.BOARD_HEIGHT-1;}二、物理参数参数值说明更新周期100ms每帧更新位置下落速度1 行/帧每次下落 1 行着陆检测下方格子非空碰撞检测合并检测着陆后触发递归合并链三、下落效果// 投放猫咪functiondropCat(col:number,level:CatLevel):void{constcatnewCat(cat_${Date.now()},level,col,0,true);this.board[0][col]cat;this.addCat(cat);}// 主循环100ms 周期setInterval((){this.updateGravity();this.processMerges();if(this.isGameOver()){this.endGame();}},100);四、最佳实践逐行下落一次 1 行模拟自然重力着陆立即合并落定后立刻触发合并检测更新周期 100ms60fps 下每 6 帧更新一次性能友好总结重力下落通过逐行移动猫咪位置模拟物理下坠。核心要点逐行下落直到落点、 着陆触发合并检测、 100ms 更新周期。如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力相关资源GameEngine 源码第 120 篇random第 122 篇collision第 124 篇forEach-update