64 lines
1.7 KiB
JavaScript
64 lines
1.7 KiB
JavaScript
мир.маскиПрыжков = {
|
|
задано: {},
|
|
};
|
|
|
|
|
|
// // // //
|
|
|
|
|
|
мир.ключники.push(function(ключ, путь, значение){
|
|
if (!путь[0].startsWith("маскиПрыжков"))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var имя = путь[1];
|
|
var свойство = путь.slice(2).join(".");
|
|
|
|
if (!мир.маскиПрыжков.задано[имя])
|
|
{
|
|
мир.маскиПрыжков.задано[имя] = {};
|
|
}
|
|
мир.маскиПрыжков.задано[имя][свойство] = значение;
|
|
});
|
|
|
|
|
|
// // // //
|
|
|
|
|
|
мир.маскиПрыжков.обновить = function()
|
|
{
|
|
var за = мир.маскиПрыжков.задано;
|
|
|
|
for (var имя in за)
|
|
{
|
|
var з = за[имя];
|
|
var объект = з["объект"];
|
|
var имяТела = з["тело"];
|
|
var скорость = з["скорость"];
|
|
var маскаДо = з["маски.0"];
|
|
var маскаПосле = з["маски.1"];
|
|
if ((!объект && !имяТела) || (скорость == null) || (маскаДо == null) || (маскаПосле == null))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var тело = null;
|
|
if (объект)
|
|
{
|
|
тело = мир.объекты.тела[объект];
|
|
}
|
|
else if (имяТела)
|
|
{
|
|
тело = мир.тела.тела[имяТела];
|
|
}
|
|
if (!тело)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var маска = (тело.velocity.y < скорость) ? маскаДо : маскаПосле;
|
|
тело.collisionFilter.mask = маска;
|
|
}
|
|
};
|