Browse Source

..

tags/4.1
parent
commit
9f3a410f29
2 changed files with 36 additions and 2 deletions
  1. +35
    -1
      4.1/игра/240.Столкновения.js
  2. +1
    -1
      4.1/игра/700.Игра.js

+ 35
- 1
4.1/игра/240.Столкновения.js View File

@@ -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.создать();
};

+ 1
- 1
4.1/игра/700.Игра.js View File

@@ -20,7 +20,7 @@ function Игра()
мир.объекты = new Объекты(мир.состояние);
мир.сцена = new Сцена(мир.состояние, мир.события, мир.тела);
мир.мышь = new Мышь(мир.события);
мир.столкновения = new Столкновения(мир.события);
мир.столкновения = new Столкновения(мир.события, мир.тела, мир.физдвижок);
this.ключники = [
new Заголовок(),
мир.виды,


Loading…
Cancel
Save