почти движение

This commit is contained in:
2021-06-23 11:34:02 +03:00
parent 0c0ae8265b
commit f19ce56969
4 changed files with 42 additions and 8 deletions

View File

@@ -1,7 +1,7 @@
мир.физика = {
движок: null,
настройки: {
enableSleeping: true,
enableSleeping: false,
},
создать: function() {
мир.физика.движок = Matter.Engine.create(мир.физика.настройки);

View File

@@ -1,5 +1,6 @@
мир.действия = {
задано: {},
исполнить: исполнитьДействие,
};
@@ -21,6 +22,31 @@
var свойство = путь.slice(2).join(".");
мир.действия.задано[имя][свойство] = значение;
console.debug("действия путь, имя/свойство/значение", путь, имя, свойство, значение);
});
// // // //
function исполнитьДействие(имя)
{
var действие = мир.действия.задано[имя];
if (!действие)
{
return;
}
var объект = мир.действия.задано[имя]["объект"];
var скоростьX = мир.действия.задано[имя]["скорость.0"];
var скоростьY = мир.действия.задано[имя]["скорость.1"];
if (
объект &&
(скоростьX != null) &&
(скоростьY != null)
) {
console.debug("исполнить действие", имя, объект, скоростьX, скоростьY);
var скорость = {
x: скоростьX,
y: скоростьY,
};
Matter.Body.setVelocity(мир.объекты.тела[объект], скорость);
}
};

View File

@@ -1,11 +1,18 @@
мир.клавиши = {
действия: {},
};
window.addEventListener("keydown", function(o) {
console.debug("keydown", o);
//console.debug("keydown", o);
var действие = мир.клавиши.действия[o.key];
if (действие)
{
мир.действия.исполнить(действие);
}
});
window.addEventListener("keyup", function(o) {
console.debug("keyup", o);
//console.debug("keyup", o);
});
@@ -19,8 +26,7 @@ console.debug("keyup", o);
}
var имя = путь[1];
console.debug("клавиша/действие", имя, значение);
мир.клавиши.действия[имя] = значение;
});

View File

@@ -28,13 +28,15 @@
действия: {
колобокВлево: {
объект: "колобок",
скорость: [-10, 0],
скорость: [-2, 0],
},
колобокВправо: {
объект: "колобок",
скорость: [2, 0],
},
колобокВверх: {
объект: "колобок",
скорость: [0, -5],
},
},
});