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