Matter.js之获取鼠标选中的对象

本文最后更新于:1 年前

由于Matter.js本身未提供鼠标单击获取到所单击的对象的方法,所以需要自己写一个,在翻阅了大量的官方demo和源码以后,我发现当拖拽的时候会获取到当前所点击的对象,由此我仿照他的方式写出了一个获取鼠标选中的对象的方法,这样就可以在拖拽的时候获取到当前所点击的对象了。

talk is cheap, show me the code.

1
2
3
4
5
6
7
8
9
10
11
12
13
// 获取world里面的所有bodies
let world = engine.world;
let bodies = world.bodies;
console.log('bodies',bodies);
// 查看当前点击的点是否在对象里面
let current_node = null;
for(let i = 0;i<bodies.length;i++){
body = bodies[i];
if (Bounds.contains(body.bounds, mouse.position)){
current_node = body;
console.log("body",body);
}
}

代码思路

  1. 获取world里面的所有bodies
  2. 遍历所有的body,检测当前点击的点是否在对象里面
  3. 如果在,则获取当前对象