|
|
@@ -1,8 +1,13 @@ |
|
|
|
function Столкновения(события) |
|
|
|
function Столкновения(события, тела, физдвижок) |
|
|
|
{ |
|
|
|
this.создать = function() |
|
|
|
{ |
|
|
|
this.задано = {}; |
|
|
|
Matter.Events.on( |
|
|
|
физдвижок, |
|
|
|
"collisionActive", |
|
|
|
(событие) => { this.обработатьСтолкновение(событие) } |
|
|
|
); |
|
|
|
}; |
|
|
|
|
|
|
|
this.обработатьКлюч = function(ключ, путь, значение) |
|
|
@@ -21,6 +26,35 @@ function Столкновения(события) |
|
|
|
this.задано[имя][свойство] = значение; |
|
|
|
}; |
|
|
|
|
|
|
|
this.обработатьСтолкновение = function(событие) |
|
|
|
{ |
|
|
|
for (var имя in this.задано) |
|
|
|
{ |
|
|
|
var ст = this.задано[имя]; |
|
|
|
var имя1 = ст["тела.0"]; |
|
|
|
var имя2 = ст["тела.1"]; |
|
|
|
if (!имя1 || !имя2 || !ст.событие) |
|
|
|
{ |
|
|
|
continue; |
|
|
|
} |
|
|
|
|
|
|
|
var пары = событие.pairs; |
|
|
|
for (var номер in пары) |
|
|
|
{ |
|
|
|
var пара = пары[номер]; |
|
|
|
var п1 = тела.имена[пара.bodyA.id]; |
|
|
|
var п2 = тела.имена[пара.bodyB.id]; |
|
|
|
if ( |
|
|
|
!((имя1 == п1) && (имя2 == п2)) && |
|
|
|
!((имя1 == п2) && (имя2 == п1)) |
|
|
|
) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
мир.события.уведомить(ст.событие); |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
// Конструктор. |
|
|
|
this.создать(); |
|
|
|
}; |