因此,我在我的世界中創建了兩個球體,一個球體和一個平面。由於重力作用,球落在表面並與其碰撞。如何檢測我的球體是否碰到另一個靜態球體
我以爲我在正確的軌道上使用Events
和Body.isSensor()
,但我似乎無法從我的事件偵聽器得到哪些屍體已經隱藏,即屍體名稱。
sketch.js
var Engine = Matter.Engine,
Render = Matter.Render,
World = Matter.World,
Bodies = Matter.Bodies,
Events = Matter.Events;
var engine = Engine.create();
var render = Render.create({
element: document.body,
engine: engine
});
var surface = Bodies.rectangle(250, 250, 400, 100, { isStatic: true });
var ball = Bodies.circle(200, 0, 11, {
density: 0.05,
restitution: 0.7,
inertia: Infinity
});
Events.on(engine, 'collisionStart', function(event) {
console.log('collisionStart');
var pairs = event.pairs;
console.log(pairs);
});
World.add(engine.world, [surface, ball]);
Engine.run(engine);
Render.run(render);
該事件被觸發但是沒有什麼在對變量。我究竟做錯了什麼?
另外,當我打開isSensor: true
時,球看起來會穿過靜態物體。
JS小提琴:https://jsfiddle.net/qk3yLfyq/12/
沒有使用過''matter.js'',但是從記錄''event''我看到''event.source.pairs''是一個包含有關主體和碰撞狀態信息的對象。那是你在找什麼? – McLemore
我認爲這是,但我不知道它應該在那裏! –
是的,''event.pairs''也存在,但正如你所說,它只是一個空的數組。 – McLemore