You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

愤怒的小鸟类游戏盒子塔碰撞异常:仅底部受影响上层静止

故障原因
  • 你当前只把堆叠塔最下方的6个盒子加入了物理引擎世界,上层盒子仅做了绘制逻辑,未接入物理碰撞检测,因此碰撞时只有底层盒子会响应受力。
    代码中的双层循环总共会生成18个盒子(6层×3列),但你在i层循环中仅执行了World.add(engine.world, [boxes[i]]),i的取值范围是0~5,仅将boxes数组前6个元素加入了物理世界,其余上层盒子完全不参与物理运算。
  • 额外问题:setupTower函数缺少闭合大括号,会触发语法报错。
修复代码
function setupTower(){
  for(var i = 0; i < 6; i++) {
    for(var j = 0; j < 3; j++) {
      noStroke();
      boxes.push(Bodies.rectangle(900 - j * 90, 540 - i * 90, 80, 80));
      colors.push(color(0, random(255), 0));
    }
  }
  // 所有盒子生成完成后一次性加入物理世界
  World.add(engine.world, boxes);
}

function drawTower(){
  push();
  for(var i = 0; i < boxes.length; i++){
    fill(colors[i]);
    drawVertices(boxes[i].vertices);
  }
  pop();
}
验证效果

修复后所有盒子都接入物理引擎,碰撞时受力会从接触点逐层传导,整个塔体堆叠和碰撞表现都会符合预期。

内容的提问来源于stack exchange,提问作者Che'1093

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 12:36:04