代码之家  ›  专栏  ›  技术社区  ›  Mike Smith

Kontra.js |碰撞检测

  •  0
  • Mike Smith  · 技术社区  · 7 年前

    最简单的例子是下面的Kontra.js示例(codepen) https://codepen.io/yellowsmiley/pen/oJzyrZ/ )。它会创建多个精灵,并在每次更新gameloop时检查所有精灵是否存在冲突。

    for (let i = 0; i < sprites.length; i++) {
      for (let j = 0; j < sprites.length; j++) {
        let sprite1 = sprites[i];
        let sprite2 = sprites[j];
        if (isCollide(sprite1, sprite2)) {
          sprite1.color = "green";
          sprite2.color = "green";
        } else {
          sprite1.color = "red";
          sprite2.color = "red";
        }
      }
    }
    

    1 回复  |  直到 7 年前
        1
  •  0
  •   Mike Smith    7 年前

    我被难住了很长一段时间,但问题很简单:你不断地将与其他精灵碰撞的精灵的颜色重置为红色。只有最后一个精灵保持绿色,因为在阳性精灵之后没有阴性测试。codepen.io/anon/pen/marjov?editors=0010克里斯G 12月18日12时44分