jumpthrough
This commit is contained in:
@@ -1,6 +1,9 @@
|
|||||||
мир.игрок = {
|
мир.игрок = {
|
||||||
задано: {},
|
задано: {},
|
||||||
обновить: обновитьИгрока,
|
обновить: function() {
|
||||||
|
переместитьИгрока();
|
||||||
|
задатьИгрокуМаскуСтолкновения();
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -21,8 +24,14 @@
|
|||||||
// // // //
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
function обновитьИгрока()
|
function переместитьИгрока()
|
||||||
{
|
{
|
||||||
|
var тело = мир.объекты.тела[мир.игрок.задано.объект];
|
||||||
|
if (!тело)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var к = [
|
var к = [
|
||||||
мир.игрок.задано["клавиши.0"],
|
мир.игрок.задано["клавиши.0"],
|
||||||
мир.игрок.задано["клавиши.1"],
|
мир.игрок.задано["клавиши.1"],
|
||||||
@@ -32,12 +41,6 @@ function обновитьИгрока()
|
|||||||
var вправо = (мир.ввод.клавиши[к[1]] == true);
|
var вправо = (мир.ввод.клавиши[к[1]] == true);
|
||||||
var вверх = (мир.ввод.клавиши[к[2]] == true);
|
var вверх = (мир.ввод.клавиши[к[2]] == true);
|
||||||
|
|
||||||
var тело = мир.объекты.тела[мир.игрок.задано.объект];
|
|
||||||
if (!тело)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var скоростьГ = мир.игрок.задано["скорость.0"];
|
var скоростьГ = мир.игрок.задано["скорость.0"];
|
||||||
var скоростьВ = мир.игрок.задано["скорость.1"];
|
var скоростьВ = мир.игрок.задано["скорость.1"];
|
||||||
var скоростьY = (вверх && Math.abs(тело.velocity.y) <= 0.0000000000001) ? -скоростьВ : тело.velocity.y;
|
var скоростьY = (вверх && Math.abs(тело.velocity.y) <= 0.0000000000001) ? -скоростьВ : тело.velocity.y;
|
||||||
@@ -54,3 +57,20 @@ function обновитьИгрока()
|
|||||||
Matter.Sleeping.set(тело, false);
|
Matter.Sleeping.set(тело, false);
|
||||||
Matter.Body.setVelocity(тело, { x: скоростьX, y: скоростьY });
|
Matter.Body.setVelocity(тело, { x: скоростьX, y: скоростьY });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
function задатьИгрокуМаскуСтолкновения()
|
||||||
|
{
|
||||||
|
var тело = мир.объекты.тела[мир.игрок.задано.объект];
|
||||||
|
if (!тело)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var маска = (тело.velocity.y < -1) ? 2 : 1;
|
||||||
|
тело.collisionFilter.mask = маска;
|
||||||
|
document.getElementById("отладка").innerHTML = `маска: ${маска}`;
|
||||||
|
}
|
||||||
|
|||||||
@@ -18,11 +18,17 @@
|
|||||||
}
|
}
|
||||||
#корень {
|
#корень {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
}
|
||||||
|
#отладка {
|
||||||
|
position: absolute;
|
||||||
|
right: 2em;
|
||||||
|
bottom: 2em;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="корень"></div>
|
<div id="корень"></div>
|
||||||
|
<div id="отладка"></div>
|
||||||
<script src="00100.мир.js"></script>
|
<script src="00100.мир.js"></script>
|
||||||
<script src="00110.заголовок.js"></script>
|
<script src="00110.заголовок.js"></script>
|
||||||
<script src="00120.физика.js"></script>
|
<script src="00120.физика.js"></script>
|
||||||
|
|||||||
Reference in New Issue
Block a user