почти стрела
This commit is contained in:
23
320.игрок.js
23
320.игрок.js
@@ -37,7 +37,7 @@
|
||||
}
|
||||
|
||||
мир.игрок.переместить();
|
||||
мир.игрок.задатьМаскуСтолкновения();
|
||||
//мир.игрок.задатьМаскуСтолкновения();
|
||||
мир.игрок.отслеживатьПрыжкиПриземления();
|
||||
};
|
||||
|
||||
@@ -77,31 +77,14 @@
|
||||
// // // //
|
||||
|
||||
|
||||
/*
|
||||
мир.игрок.задатьМаскуСтолкновения = function()
|
||||
{
|
||||
var прыжок = мир.игрок.тело.velocity.y < -1;
|
||||
var маска = прыжок ? 1 : (1 | 2);
|
||||
мир.игрок.тело.collisionFilter.mask = маска;
|
||||
|
||||
/*
|
||||
if (тело.velocity.y < мир.игрок.minv)
|
||||
{
|
||||
мир.игрок.minv = тело.velocity.y;
|
||||
}
|
||||
if (тело.velocity.y > мир.игрок.maxv)
|
||||
{
|
||||
мир.игрок.maxv = тело.velocity.y;
|
||||
}
|
||||
document.getElementById("отладка").innerHTML = `min: ${мир.игрок.minv} max: ${мир.игрок.maxv}`;
|
||||
|
||||
if (Math.abs(мир.игрок.было - тело.velocity.y) > 0.001)
|
||||
{
|
||||
мир.игрок.было = тело.velocity.y;
|
||||
console.debug("vel", мир.игрок.было);
|
||||
}
|
||||
*/
|
||||
|
||||
};
|
||||
*/
|
||||
|
||||
|
||||
// // // /
|
||||
|
||||
54
360.маскиПрыжков.js
Normal file
54
360.маскиПрыжков.js
Normal file
@@ -0,0 +1,54 @@
|
||||
мир.маскиПрыжков = {
|
||||
задано: {},
|
||||
};
|
||||
|
||||
|
||||
// // // //
|
||||
|
||||
|
||||
мир.ключники.push(function(ключ, путь, значение){
|
||||
if (!путь[0].startsWith("маскиПрыжков"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var имя = путь[1];
|
||||
var свойство = путь.slice(2).join(".");
|
||||
|
||||
if (!мир.маскиПрыжков.задано[имя])
|
||||
{
|
||||
мир.маскиПрыжков.задано[имя] = {};
|
||||
}
|
||||
мир.маскиПрыжков.задано[имя][свойство] = значение;
|
||||
});
|
||||
|
||||
|
||||
// // // //
|
||||
|
||||
|
||||
мир.маскиПрыжков.обновить = function()
|
||||
{
|
||||
var за = мир.маскиПрыжков.задано;
|
||||
|
||||
for (var имя in за)
|
||||
{
|
||||
var з = за[имя];
|
||||
var объект = з["объект"];
|
||||
var скорость = з["скорость"];
|
||||
var маскаДо = з["маски.0"];
|
||||
var маскаПосле = з["маски.1"];
|
||||
if (!объект || (скорость == null) || (маскаДо == null) || (маскаПосле == null))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var тело = мир.объекты.тела[объект];
|
||||
if (!тело)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var маска = (тело.velocity.y < скорость) ? маскаДо : маскаПосле;
|
||||
тело.collisionFilter.mask = маска;
|
||||
}
|
||||
};
|
||||
@@ -4,6 +4,7 @@
|
||||
мир.объекты.обновить();
|
||||
мир.игрок.обновить();
|
||||
мир.слежение.обновить();
|
||||
мир.маскиПрыжков.обновить();
|
||||
requestAnimationFrame(мир.обновить);
|
||||
};
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
ширина: 355,
|
||||
вид: {
|
||||
background: "url(р/отладка/основа.jpg)",
|
||||
//display: "none",
|
||||
display: "none",
|
||||
},
|
||||
},
|
||||
полКрышки: {
|
||||
@@ -30,7 +30,7 @@
|
||||
ширина: 135,
|
||||
вид: {
|
||||
background: "url(р/отладка/основа.jpg)",
|
||||
//display: "none",
|
||||
display: "none",
|
||||
},
|
||||
},
|
||||
полСправа: {
|
||||
@@ -39,7 +39,7 @@
|
||||
ширина: 1505,
|
||||
вид: {
|
||||
background: "url(р/отладка/основа.jpg)",
|
||||
//display: "none",
|
||||
display: "none",
|
||||
},
|
||||
},
|
||||
стол: {
|
||||
@@ -48,7 +48,7 @@
|
||||
ширина: 610,
|
||||
вид: {
|
||||
background: "url(р/отладка/основа.jpg)",
|
||||
//display: "none",
|
||||
display: "none",
|
||||
},
|
||||
физика: {
|
||||
collisionFilter: {
|
||||
@@ -62,7 +62,7 @@
|
||||
ширина: 200,
|
||||
вид: {
|
||||
background: "url(р/отладка/основа.jpg)",
|
||||
//display: "none",
|
||||
display: "none",
|
||||
},
|
||||
физика: {
|
||||
angle: -0.0698,
|
||||
@@ -112,7 +112,7 @@
|
||||
},
|
||||
игрок: {
|
||||
объект: "кирпич",
|
||||
скорость: [5, 12],
|
||||
скорость: [5, 12.5],
|
||||
клавиши: ["ArrowLeft", "ArrowRight", "ArrowUp"],
|
||||
},
|
||||
слежение: {
|
||||
@@ -127,6 +127,13 @@
|
||||
скорость: 0.1,
|
||||
},
|
||||
},
|
||||
маскиПрыжков: {
|
||||
игрок: {
|
||||
объект: "кирпич",
|
||||
скорость: -1,
|
||||
маски: [1, 1|2],
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
// // // //
|
||||
@@ -141,7 +148,7 @@
|
||||
ширина: 550,
|
||||
вид: {
|
||||
background: "url(р/отладка/основа.jpg)",
|
||||
//display: "none",
|
||||
display: "none",
|
||||
},
|
||||
физика: {
|
||||
collisionFilter: {
|
||||
@@ -156,7 +163,7 @@
|
||||
высота: 10,
|
||||
вид: {
|
||||
background: "url(р/отладка/основа.jpg)",
|
||||
//display: "none",
|
||||
display: "none",
|
||||
},
|
||||
физика: {
|
||||
collisionFilter: {
|
||||
@@ -171,7 +178,7 @@
|
||||
высота: 10,
|
||||
вид: {
|
||||
background: "url(р/отладка/основа.jpg)",
|
||||
//display: "none",
|
||||
display: "none",
|
||||
},
|
||||
физика: {
|
||||
collisionFilter: {
|
||||
@@ -186,7 +193,7 @@
|
||||
высота: 10,
|
||||
вид: {
|
||||
background: "url(р/отладка/основа.jpg)",
|
||||
//display: "none",
|
||||
display: "none",
|
||||
},
|
||||
физика: {
|
||||
collisionFilter: {
|
||||
@@ -201,7 +208,7 @@
|
||||
высота: 10,
|
||||
вид: {
|
||||
background: "url(р/отладка/основа.jpg)",
|
||||
//display: "none",
|
||||
display: "none",
|
||||
},
|
||||
физика: {
|
||||
collisionFilter: {
|
||||
@@ -216,7 +223,7 @@
|
||||
высота: 10,
|
||||
вид: {
|
||||
background: "url(р/отладка/основа.jpg)",
|
||||
//display: "none",
|
||||
display: "none",
|
||||
},
|
||||
физика: {
|
||||
collisionFilter: {
|
||||
@@ -231,7 +238,7 @@
|
||||
высота: 10,
|
||||
вид: {
|
||||
background: "url(р/отладка/основа.jpg)",
|
||||
//display: "none",
|
||||
display: "none",
|
||||
},
|
||||
физика: {
|
||||
collisionFilter: {
|
||||
@@ -267,14 +274,6 @@
|
||||
подкинули: false,
|
||||
};
|
||||
|
||||
/*
|
||||
мир.отладка = {
|
||||
сенсор: null,
|
||||
стрела: null,
|
||||
срабатывание: false,
|
||||
};
|
||||
*/
|
||||
|
||||
мир.разобрать({
|
||||
объекты: {
|
||||
сенсор: {
|
||||
@@ -314,6 +313,7 @@
|
||||
ширина: 100,
|
||||
вид: {
|
||||
background: "url(р/отладка/основа.jpg)",
|
||||
display: "none",
|
||||
},
|
||||
физика: {
|
||||
isStatic: true,
|
||||
@@ -361,9 +361,16 @@
|
||||
мир.подкидываниеСтрелы.подкинули = true;
|
||||
Matter.Body.setVelocity(
|
||||
мир.объекты.тела.стрела,
|
||||
{ x: 0, y: -мир.игрок.приземление.скорость * 2 }
|
||||
{ x: 0, y: -мир.игрок.приземление.скорость * 1.2 }
|
||||
);
|
||||
},
|
||||
],
|
||||
},
|
||||
маскиПрыжков: {
|
||||
стрела: {
|
||||
объект: "стрела",
|
||||
скорость: -1,
|
||||
маски: [0, 2|4]
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
<script src="300.действия.js"></script>
|
||||
<script src="320.игрок.js"></script>
|
||||
<script src="340.слежение.js"></script>
|
||||
<script src="360.маскиПрыжков.js"></script>
|
||||
<script src="400.столкновения.js"></script>
|
||||
<script src="700.пуск.js"></script>
|
||||
<script src="800.пример.json.js"></script>
|
||||
|
||||
Reference in New Issue
Block a user