..
This commit is contained in:
@@ -1,8 +1,13 @@
|
|||||||
function Столкновения(события)
|
function Столкновения(события, тела, физдвижок)
|
||||||
{
|
{
|
||||||
this.создать = function()
|
this.создать = function()
|
||||||
{
|
{
|
||||||
this.задано = {};
|
this.задано = {};
|
||||||
|
Matter.Events.on(
|
||||||
|
физдвижок,
|
||||||
|
"collisionActive",
|
||||||
|
(событие) => { this.обработатьСтолкновение(событие) }
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
this.обработатьКлюч = function(ключ, путь, значение)
|
this.обработатьКлюч = function(ключ, путь, значение)
|
||||||
@@ -21,6 +26,35 @@ function Столкновения(события)
|
|||||||
this.задано[имя][свойство] = значение;
|
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.создать();
|
this.создать();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ function Игра()
|
|||||||
мир.объекты = new Объекты(мир.состояние);
|
мир.объекты = new Объекты(мир.состояние);
|
||||||
мир.сцена = new Сцена(мир.состояние, мир.события, мир.тела);
|
мир.сцена = new Сцена(мир.состояние, мир.события, мир.тела);
|
||||||
мир.мышь = new Мышь(мир.события);
|
мир.мышь = new Мышь(мир.события);
|
||||||
мир.столкновения = new Столкновения(мир.события);
|
мир.столкновения = new Столкновения(мир.события, мир.тела, мир.физдвижок);
|
||||||
this.ключники = [
|
this.ключники = [
|
||||||
new Заголовок(),
|
new Заголовок(),
|
||||||
мир.виды,
|
мир.виды,
|
||||||
|
|||||||
Reference in New Issue
Block a user