写一个js面向对象实现碰撞检测的代码
时间: 2023-04-07 21:03:02 浏览: 78
好的,以下是一个简单的面向对象实现碰撞检测的 JavaScript 代码:
```javascript
class CollisionDetector {
constructor(obj1, obj2) {
this.obj1 = obj1;
this.obj2 = obj2;
}
checkCollision() {
const rect1 = this.obj1.getBoundingClientRect();
const rect2 = this.obj2.getBoundingClientRect();
return !(
rect1.bottom < rect2.top ||
rect1.top > rect2.bottom ||
rect1.right < rect2.left ||
rect1.left > rect2.right
);
}
}
// 使用示例
const obj1 = document.getElementById('obj1');
const obj2 = document.getElementById('obj2');
const detector = new CollisionDetector(obj1, obj2);
if (detector.checkCollision()) {
console.log('碰撞了!');
}
```
以上代码实现了一个 `CollisionDetector` 类,它接收两个 DOM 元素作为参数,并提供了一个 `checkCollision` 方法来检测它们是否发生了碰撞。具体实现是通过获取两个元素的矩形边界,然后比较它们的位置关系来判断是否碰撞。