Files
MYPOM/6.0/игра/700.Игра.js

102 lines
4.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

function Игра()
{
this.создать = function()
{
мир.физдвижок = Matter.Engine.create({
enableSleeping: true,
gravity: {
y: 2,
},
});
var корень = document.getElementById("корень");
мир.события = new События(мир.uuid);
мир.состояние = new Состояние();
мир.состояние.обработчик = (к, п, з) => { this.обработатьКлюч(к, п, з) };
мир.виды = new Виды(мир.события);
мир.анимации = new Анимации(мир.события);
мир.изображения = new Изображения(мир.события, мир.виды, мир.анимации, корень),
мир.физика = new Физика(мир.события);
мир.тела = new Тела(мир.события, мир.физика, мир.физдвижок.world);
мир.слежение = new Слежение(мир.состояние, мир.изображения, мир.тела);
мир.объекты = new Объекты(мир.состояние, мир.события);
мир.состояниЯ = new Состояния(мир.состояние);
мир.мышь = new Мышь(мир.события);
мир.столкновения = new Столкновения(мир.события, мир.тела, мир.физдвижок);
this.ключники = [
new Заголовок(),
мир.виды,
мир.анимации,
мир.изображения,
мир.физика,
мир.тела,
мир.слежение,
мир.объекты,
мир.состояниЯ,
мир.столкновения,
];
this.настроитьКлючиGR()
var z64 = мир.параметрыЗапуска()["z64"];
this.исполнитьКод(z64);
this.отслеживатьОбновленияКода();
this.обновить();
};
this.исполнитьКод = function(z64)
{
if (z64)
{
var код = мир.изZ64(z64);
eval(код);
}
};
this.настроитьКлючиGR = function()
{
let адресИгры = window.location.pathname + "/../игра.html?z64=";
мир.grСцена = new grСцена(мир.состояние, мир.состояниЯ, мир.события, мир.тела, адресИгры);
this.ключники.push(мир.grСцена);
мир.grПодсказки = new grПодсказки();
this.ключники.push(мир.grПодсказки);
мир.grРеплики = new grРеплики(мир.события);
this.ключники.push(мир.grРеплики);
мир.grМеню = new grМеню(мир.события, мир.grПодсказки, мир.grРеплики);
}
this.обновить = function()
{
Matter.Engine.update(мир.физдвижок);
мир.анимации.обновить(мир.физдвижок.timing.timestamp);
мир.слежение.обновить();
мир.grСцена.обновить();
var тут = this;
requestAnimationFrame(function() {
тут.обновить();
});
};
this.обработатьКлюч = function(ключ, путь, значение)
{
for (var номер in this.ключники)
{
var ключник = this.ключники[номер];
ключник.обработатьКлюч(ключ, путь, значение);
}
};
this.отслеживатьОбновленияКода = function()
{
var тут = this;
window.addEventListener("message", function(событие) {
тут.исполнитьКод(событие.data);
});
};
// Конструктор.
this.создать();
}