Compare commits
4 Commits
95b92bee5a
...
096468aa49
| Author | SHA1 | Date | |
|---|---|---|---|
| 096468aa49 | |||
| f19ce56969 | |||
| 0c0ae8265b | |||
| bc93363aac |
@@ -1,7 +1,7 @@
|
||||
мир.физика = {
|
||||
движок: null,
|
||||
настройки: {
|
||||
enableSleeping: true,
|
||||
enableSleeping: false,
|
||||
},
|
||||
создать: function() {
|
||||
мир.физика.движок = Matter.Engine.create(мир.физика.настройки);
|
||||
|
||||
@@ -85,6 +85,7 @@ function пересоздатьТело(имя, свойство, значени
|
||||
var высота = за["высота"] ? за["высота"] : ум["высота"];
|
||||
var свойства = {
|
||||
isStatic: ("статика" in за) ? за.статика : ум.статика,
|
||||
inertia: Infinity,
|
||||
};
|
||||
|
||||
var тело = Matter.Bodies.rectangle(x, y, ширина, высота, свойства);
|
||||
|
||||
53
00135.действия.js
Normal file
53
00135.действия.js
Normal file
@@ -0,0 +1,53 @@
|
||||
мир.действия = {
|
||||
задано: {},
|
||||
исполнить: исполнитьДействие,
|
||||
};
|
||||
|
||||
|
||||
// // // //
|
||||
|
||||
|
||||
мир.ключники.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(тело, скорость);
|
||||
}
|
||||
};
|
||||
@@ -1,11 +1,32 @@
|
||||
/*
|
||||
мир.клавиши = {
|
||||
действия: {},
|
||||
};
|
||||
*/
|
||||
|
||||
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);
|
||||
});
|
||||
|
||||
|
||||
// // // //
|
||||
|
||||
|
||||
мир.ключники.push(function(ключ, путь, значение){
|
||||
if (!ключ.startsWith("клавиши"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var имя = путь[1];
|
||||
мир.клавиши.действия[имя] = значение;
|
||||
});
|
||||
|
||||
|
||||
|
||||
@@ -20,4 +20,23 @@
|
||||
},
|
||||
},
|
||||
},
|
||||
клавиши : {
|
||||
ArrowLeft: "колобокВлево",
|
||||
ArrowRight: "колобокВправо",
|
||||
ArrowUp: "колобокВверх",
|
||||
},
|
||||
действия: {
|
||||
колобокВлево: {
|
||||
объект: "колобок",
|
||||
скорость: [-10, 0],
|
||||
},
|
||||
колобокВправо: {
|
||||
объект: "колобок",
|
||||
скорость: [10, 0],
|
||||
},
|
||||
колобокВверх: {
|
||||
объект: "колобок",
|
||||
скорость: [0, -5],
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
<script src="00110.заголовок.js"></script>
|
||||
<script src="00120.физика.js"></script>
|
||||
<script src="00130.объекты.js"></script>
|
||||
<script src="00135.действия.js"></script>
|
||||
<script src="00140.клавиши.js"></script>
|
||||
<script src="01000.пуск.js"></script>
|
||||
<script src="01300.пример.json.js"></script>
|
||||
|
||||
Reference in New Issue
Block a user