следить изо
This commit is contained in:
12
220.игрок.js
12
220.игрок.js
@@ -1,8 +1,8 @@
|
|||||||
мир.игрок = {
|
мир.игрок = {
|
||||||
задано: {},
|
задано: {},
|
||||||
обновить: function() {
|
обновить: function() {
|
||||||
переместитьИгрока();
|
мир.игрок.переместить();
|
||||||
задатьИгрокуМаскуСтолкновения();
|
мир.игрок.задатьМаскуСтолкновения();
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
// // // //
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
function переместитьИгрока()
|
мир.игрок.переместить = function()
|
||||||
{
|
{
|
||||||
var тело = мир.объекты.тела[мир.игрок.задано.объект];
|
var тело = мир.объекты.тела[мир.игрок.задано.объект];
|
||||||
if (!тело)
|
if (!тело)
|
||||||
@@ -56,13 +56,13 @@ function переместитьИгрока()
|
|||||||
|
|
||||||
Matter.Sleeping.set(тело, false);
|
Matter.Sleeping.set(тело, false);
|
||||||
Matter.Body.setVelocity(тело, { x: скоростьX, y: скоростьY });
|
Matter.Body.setVelocity(тело, { x: скоростьX, y: скоростьY });
|
||||||
}
|
};
|
||||||
|
|
||||||
|
|
||||||
// // // //
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
function задатьИгрокуМаскуСтолкновения()
|
мир.игрок.задатьМаскуСтолкновения = function()
|
||||||
{
|
{
|
||||||
var тело = мир.объекты.тела[мир.игрок.задано.объект];
|
var тело = мир.объекты.тела[мир.игрок.задано.объект];
|
||||||
if (!тело)
|
if (!тело)
|
||||||
@@ -73,4 +73,4 @@ function задатьИгрокуМаскуСтолкновения()
|
|||||||
var прыжок = тело.velocity.y < -1;
|
var прыжок = тело.velocity.y < -1;
|
||||||
var маска = прыжок ? 1 : (1 | 2);
|
var маска = прыжок ? 1 : (1 | 2);
|
||||||
тело.collisionFilter.mask = маска;
|
тело.collisionFilter.mask = маска;
|
||||||
}
|
};
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
мир.слежения = {
|
мир.слежение = {
|
||||||
умолчание: {
|
умолчание: {
|
||||||
смещение: [0, 0],
|
смещение: [0, 0],
|
||||||
скорость: 1,
|
скорость: 1,
|
||||||
},
|
},
|
||||||
задано: {},
|
задано: {},
|
||||||
обновить: обновитьСлежения,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -12,7 +11,7 @@
|
|||||||
|
|
||||||
|
|
||||||
мир.ключники.push(function(ключ, путь, значение){
|
мир.ключники.push(function(ключ, путь, значение){
|
||||||
if (!путь[0].startsWith("слежения"))
|
if (!путь[0].startsWith("слежение"))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -20,27 +19,24 @@
|
|||||||
var имя = путь[1];
|
var имя = путь[1];
|
||||||
var свойство = путь.slice(2).join(".");
|
var свойство = путь.slice(2).join(".");
|
||||||
|
|
||||||
if (!мир.слежения.задано[имя])
|
if (!мир.слежение.задано[имя])
|
||||||
{
|
{
|
||||||
мир.слежения.задано[имя] = {};
|
мир.слежение.задано[имя] = {};
|
||||||
}
|
}
|
||||||
мир.слежения.задано[имя][свойство] = значение;
|
мир.слежение.задано[имя][свойство] = значение;
|
||||||
console.debug("слежения.задано имя/свойство", имя, свойство);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// // // //
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
function обновитьСлежения()
|
мир.слежение.обновить = function()
|
||||||
{
|
{
|
||||||
console.debug("обновитьСлежения");
|
var за = мир.слежение.задано;
|
||||||
var за = мир.слежения.задано;
|
var ум = мир.слежение.умолчание;
|
||||||
var ум = мир.слежения.умолчание;
|
|
||||||
|
|
||||||
for (var имя in за)
|
for (var имя in за)
|
||||||
{
|
{
|
||||||
console.debug("обновитьСлежения. имя:", имя);
|
|
||||||
var эл = null;
|
var эл = null;
|
||||||
if (имя == "камера")
|
if (имя == "камера")
|
||||||
{
|
{
|
||||||
@@ -48,7 +44,7 @@ console.debug("обновитьСлежения. имя:", имя);
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
эл = элементСлежения(за[имя]);
|
эл = мир.слежение.элемент(за[имя]);
|
||||||
}
|
}
|
||||||
var тело = null;
|
var тело = null;
|
||||||
var имяТела = за[имя]["объект"];
|
var имяТела = за[имя]["объект"];
|
||||||
@@ -56,15 +52,15 @@ console.debug("обновитьСлежения. имя:", имя);
|
|||||||
{
|
{
|
||||||
тело = мир.объекты.тела[имяТела];
|
тело = мир.объекты.тела[имяТела];
|
||||||
}
|
}
|
||||||
обновитьЭлемент(эл, тело, за[имя], ум);
|
мир.слежение.обновитьЭлемент(эл, тело, за[имя], ум);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
// // // //
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
function элементСлежения(задано)
|
мир.слежение.элемент = function(задано)
|
||||||
{
|
{
|
||||||
var id = null;
|
var id = null;
|
||||||
var изображение = задано["изображение"];
|
var изображение = задано["изображение"];
|
||||||
@@ -72,25 +68,22 @@ function элементСлежения(задано)
|
|||||||
{
|
{
|
||||||
id = мир.изображения.элементы[изображение].id;
|
id = мир.изображения.элементы[изображение].id;
|
||||||
}
|
}
|
||||||
var эл = document.getElementById(id);
|
return document.getElementById(id);
|
||||||
console.debug("элементСлежения. эл:", эл);
|
};
|
||||||
return эл;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// // // //
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
function обновитьЭлемент(элемент, тело, задано, умолчание)
|
мир.слежение.обновитьЭлемент = function(элемент, тело, задано, умолчание)
|
||||||
{
|
{
|
||||||
if (!элемент || !тело || !умолчание)
|
if (!элемент || !тело)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
console.debug("обновитьЭлемент. элемент:", элемент, "тело:", тело, "за:", задано, "ум:", умолчание);
|
|
||||||
var скорость = задано.скорость ? задано.скорость : умолчание.скорость;
|
var скорость = задано.скорость ? задано.скорость : умолчание.скорость;
|
||||||
var смещениеX = задано.смещение ? задано.смещение[0] : умолание.смещение[0];
|
var смещениеX = задано["смещение.0"] ? задано["смещение.0"] : умолчание.смещение[0];
|
||||||
var смещениеY = задано.смещение ? задано.смещение[1] : умолание.смещение[1];
|
var смещениеY = задано["смещение.1"] ? задано["смещение.1"] : умолчание.смещение[1];
|
||||||
|
|
||||||
// Сейчас.
|
// Сейчас.
|
||||||
var x0 = 0;
|
var x0 = 0;
|
||||||
@@ -115,14 +108,15 @@ console.debug("обновитьЭлемент. элемент:", элемент,
|
|||||||
var x = lerp(x0, x1, скорость);
|
var x = lerp(x0, x1, скорость);
|
||||||
var y = lerp(y0, y1, скорость);
|
var y = lerp(y0, y1, скорость);
|
||||||
|
|
||||||
корень.style.left = `${x}px`;
|
элемент.style.left = `${x}px`;
|
||||||
корень.style.top = `${y}px`;
|
элемент.style.top = `${y}px`;
|
||||||
}
|
};
|
||||||
|
|
||||||
|
|
||||||
// // // //
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
function обновитьКамеру()
|
function обновитьКамеру()
|
||||||
{
|
{
|
||||||
var объект = мир.камера.задано.объект;
|
var объект = мир.камера.задано.объект;
|
||||||
@@ -158,3 +152,4 @@ function обновитьКамеру()
|
|||||||
корень.style.left = `${x}px`;
|
корень.style.left = `${x}px`;
|
||||||
корень.style.top = `${y}px`;
|
корень.style.top = `${y}px`;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
мир.физика.обновить();
|
мир.физика.обновить();
|
||||||
мир.объекты.обновить();
|
мир.объекты.обновить();
|
||||||
мир.игрок.обновить();
|
мир.игрок.обновить();
|
||||||
//мир.слежения.обновить();
|
мир.слежение.обновить();
|
||||||
requestAnimationFrame(мир.обновить);
|
requestAnimationFrame(мир.обновить);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
ширина: 2000,
|
ширина: 2000,
|
||||||
высота: 600,
|
высота: 600,
|
||||||
вид: {
|
вид: {
|
||||||
//background: "url(р/сцены/изба.jpg)",
|
background: "url(р/сцены/изба.jpg)",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
колобок: {
|
колобок: {
|
||||||
@@ -23,9 +23,11 @@
|
|||||||
кирпич: {
|
кирпич: {
|
||||||
x: 1170,
|
x: 1170,
|
||||||
y: 350,
|
y: 350,
|
||||||
|
высота: 10,
|
||||||
ширина: 70,
|
ширина: 70,
|
||||||
вид: {
|
вид: {
|
||||||
background: "url(р/отладка/основа.jpg)",
|
background: "url(р/отладка/основа.jpg)",
|
||||||
|
display: "none",
|
||||||
},
|
},
|
||||||
физика: {
|
физика: {
|
||||||
isStatic: false,
|
isStatic: false,
|
||||||
@@ -110,7 +112,7 @@
|
|||||||
колобок: {
|
колобок: {
|
||||||
объект: "кирпич",
|
объект: "кирпич",
|
||||||
изображение: "колобок",
|
изображение: "колобок",
|
||||||
смещение: [0, 0],
|
смещение: [-35, -65],
|
||||||
скорость: 1,
|
скорость: 1,
|
||||||
},
|
},
|
||||||
/*
|
/*
|
||||||
|
|||||||
Reference in New Issue
Block a user