diff --git a/3.2/общее/100.События.js b/3.2/общее/100.События.js index 7ba82e8..19f8ecf 100644 --- a/3.2/общее/100.События.js +++ b/3.2/общее/100.События.js @@ -1,9 +1,9 @@ function События() { - this.создать = function() - { + this.создать = function() + { this.обработчики = []; - }; + }; this.подписать = function(обработчик) { @@ -25,7 +25,7 @@ function События() обработчик.обработатьСобытие(событие); } }; - + // Конструктор. this.создать(); } diff --git a/3.2/проигрыватель/120.Физика.js b/3.2/проигрыватель/120.Физика.js new file mode 100644 index 0000000..4f8ccbb --- /dev/null +++ b/3.2/проигрыватель/120.Физика.js @@ -0,0 +1,19 @@ +function Физика() +{ + this.создать = function() + { + this.движок = Matter.Engine.create({ + enableSleeping: true, + gravity: { + y: 2, + }, + }); + }; + + this.обновить = function() { + Matter.Engine.update(this.движок); + }; + + // Конструктор. + this.создать(); +} diff --git a/3.2/проигрыватель/700.Игра.js b/3.2/проигрыватель/700.Игра.js index 6f00841..ba58beb 100644 --- a/3.2/проигрыватель/700.Игра.js +++ b/3.2/проигрыватель/700.Игра.js @@ -10,10 +10,12 @@ function Игра() new Заголовок(), new Изображения(корень), ]; + мир.физика = new Физика(); var z64 = мир.параметрыЗапуска()["z64"]; this.исполнитьКод(z64); this.отслеживатьОбновленияКода(); + this.обновить(); }; this.исполнитьКод = function(z64) @@ -25,6 +27,16 @@ function Игра() } }; + this.обновить = function() + { + мир.физика.обновить(); + + var тут = this; + requestAnimationFrame(function() { + тут.обновить(); + }); + }; + this.обработатьКлюч = function(ключ, путь, значение) { for (var номер in this.ключники) diff --git a/3.2/проигрыватель/index.html b/3.2/проигрыватель/index.html index 881bb87..7f533bb 100644 --- a/3.2/проигрыватель/index.html +++ b/3.2/проигрыватель/index.html @@ -34,6 +34,7 @@ +