..
This commit is contained in:
@@ -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.создать();
|
||||
};
|
||||
|
||||
@@ -20,7 +20,7 @@ function Игра()
|
||||
мир.объекты = new Объекты(мир.состояние);
|
||||
мир.сцена = new Сцена(мир.состояние, мир.события, мир.тела);
|
||||
мир.мышь = new Мышь(мир.события);
|
||||
мир.столкновения = new Столкновения(мир.события);
|
||||
мир.столкновения = new Столкновения(мир.события, мир.тела, мир.физдвижок);
|
||||
this.ключники = [
|
||||
new Заголовок(),
|
||||
мир.виды,
|
||||
|
||||
Reference in New Issue
Block a user