diff --git a/4.0/игра/120.Физика.js b/4.0/игра/120.Физика.js index 4f8ccbb..d75fc12 100644 --- a/4.0/игра/120.Физика.js +++ b/4.0/игра/120.Физика.js @@ -1,19 +1,28 @@ -function Физика() +function Физика(события) { this.создать = function() { - this.движок = Matter.Engine.create({ - enableSleeping: true, - gravity: { - y: 2, - }, - }); + this.задано = {}; }; - this.обновить = function() { - Matter.Engine.update(this.движок); + this.обработатьКлюч = function(ключ, путь, значение) + { + if (путь[0] != "физика") + { + return; + } + + let имя = путь[1]; + let свойство = путь.slice(2).join("."); + if (!this.задано[имя]) + { + this.задано[имя] = {}; + } + this.задано[имя][свойство] = значение; + + события.уведомить(`физика/${имя}`); }; // Конструктор. this.создать(); -} +}; diff --git a/4.0/игра/700.Игра.js b/4.0/игра/700.Игра.js index d57afb3..9f59a9b 100644 --- a/4.0/игра/700.Игра.js +++ b/4.0/игра/700.Игра.js @@ -2,20 +2,27 @@ function Игра() { this.создать = function() { + мир.физдвижок = Matter.Engine.create({ + enableSleeping: true, + gravity: { + y: 2, + }, + }); var корень = document.getElementById("корень"); мир.события = new События(); мир.состояние = new Состояние(); мир.состояние.обработчик = (к, п, з) => { this.обработатьКлюч(к, п, з) }; - мир.физика = new Физика(); мир.виды = new Виды(мир.события); мир.изображения = new Изображения(мир.события, мир.виды, корень), - мир.тела = new Тела(мир.физика.движок.world); + мир.физика = new Физика(мир.события); + мир.тела = new Тела(мир.физдвижок.world); мир.слежение = new Слежение(мир.изображения, мир.тела); мир.объекты = new Объекты(мир.состояние); this.ключники = [ new Заголовок(), мир.виды, мир.изображения, + мир.физика, мир.тела, мир.слежение, мир.объекты, @@ -38,7 +45,7 @@ function Игра() this.обновить = function() { - мир.физика.обновить(); + Matter.Engine.update(мир.физдвижок); мир.слежение.обновить(); var тут = this;