мир.маскиПрыжков = { задано: {}, }; // // // // мир.ключники.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 = маска; } };