54 lines
1.6 KiB
JavaScript
54 lines
1.6 KiB
JavaScript
мир.действия = {
|
||
задано: {},
|
||
исполнить: исполнитьДействие,
|
||
};
|
||
|
||
|
||
// // // //
|
||
|
||
|
||
мир.ключники.push(function(ключ, путь, значение){
|
||
if (!ключ.startsWith("действия"))
|
||
{
|
||
return;
|
||
}
|
||
|
||
var имя = путь[1];
|
||
|
||
if (!(имя in мир.действия.задано))
|
||
{
|
||
мир.действия.задано[имя] = {};
|
||
}
|
||
|
||
var свойство = путь.slice(2).join(".");
|
||
мир.действия.задано[имя][свойство] = значение;
|
||
});
|
||
|
||
|
||
// // // //
|
||
|
||
function исполнитьДействие(имя)
|
||
{
|
||
var действие = мир.действия.задано[имя];
|
||
if (!действие)
|
||
{
|
||
return;
|
||
}
|
||
var объект = мир.действия.задано[имя]["объект"];
|
||
var скоростьX = мир.действия.задано[имя]["скорость.0"];
|
||
var скоростьY = мир.действия.задано[имя]["скорость.1"];
|
||
if (
|
||
объект &&
|
||
(скоростьX != null) &&
|
||
(скоростьY != null)
|
||
) {
|
||
console.debug("исполнить действие", имя, объект, скоростьX, скоростьY);
|
||
var тело = мир.объекты.тела[объект];
|
||
var скорость = {
|
||
x: скоростьX + тело.velocity.x,
|
||
y: скоростьY + тело.velocity.y,
|
||
};
|
||
Matter.Body.setVelocity(тело, скорость);
|
||
}
|
||
};
|