Compare commits
4 Commits
95b92bee5a
...
096468aa49
| Author | SHA1 | Date | |
|---|---|---|---|
| 096468aa49 | |||
| f19ce56969 | |||
| 0c0ae8265b | |||
| bc93363aac |
@@ -1,7 +1,7 @@
|
|||||||
мир.физика = {
|
мир.физика = {
|
||||||
движок: null,
|
движок: null,
|
||||||
настройки: {
|
настройки: {
|
||||||
enableSleeping: true,
|
enableSleeping: false,
|
||||||
},
|
},
|
||||||
создать: function() {
|
создать: function() {
|
||||||
мир.физика.движок = Matter.Engine.create(мир.физика.настройки);
|
мир.физика.движок = Matter.Engine.create(мир.физика.настройки);
|
||||||
|
|||||||
@@ -85,6 +85,7 @@ function пересоздатьТело(имя, свойство, значени
|
|||||||
var высота = за["высота"] ? за["высота"] : ум["высота"];
|
var высота = за["высота"] ? за["высота"] : ум["высота"];
|
||||||
var свойства = {
|
var свойства = {
|
||||||
isStatic: ("статика" in за) ? за.статика : ум.статика,
|
isStatic: ("статика" in за) ? за.статика : ум.статика,
|
||||||
|
inertia: Infinity,
|
||||||
};
|
};
|
||||||
|
|
||||||
var тело = Matter.Bodies.rectangle(x, y, ширина, высота, свойства);
|
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) {
|
window.addEventListener("keydown", function(o) {
|
||||||
console.debug("keydown", o);
|
//console.debug("keydown", o);
|
||||||
|
var действие = мир.клавиши.действия[o.key];
|
||||||
|
if (действие)
|
||||||
|
{
|
||||||
|
мир.действия.исполнить(действие);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
window.addEventListener("keyup", function(o) {
|
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="00110.заголовок.js"></script>
|
||||||
<script src="00120.физика.js"></script>
|
<script src="00120.физика.js"></script>
|
||||||
<script src="00130.объекты.js"></script>
|
<script src="00130.объекты.js"></script>
|
||||||
|
<script src="00135.действия.js"></script>
|
||||||
<script src="00140.клавиши.js"></script>
|
<script src="00140.клавиши.js"></script>
|
||||||
<script src="01000.пуск.js"></script>
|
<script src="01000.пуск.js"></script>
|
||||||
<script src="01300.пример.json.js"></script>
|
<script src="01300.пример.json.js"></script>
|
||||||
|
|||||||
Reference in New Issue
Block a user