Browse Source

следить изо

master
parent
commit
4847c4355e
4 changed files with 34 additions and 37 deletions
  1. +6
    -6
      220.игрок.js
  2. +23
    -28
      240.слежение.js
  3. +1
    -1
      700.пуск.js
  4. +4
    -2
      800.пример.json.js

+ 6
- 6
220.игрок.js View File

@@ -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 = маска;
}
};

+ 23
- 28
240.слежение.js View File

@@ -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);
console.debug("элементСлежения. эл:", эл);
return эл;
}
return document.getElementById(id);
};




// // // // // // // //




function обновитьЭлемент(элемент, тело, задано, умолчание)
мир.слежение.обновитьЭлемент = function(элемент, тело, задано, умолчание)
{ {
if (!элемент || !тело || !умолчание)
if (!элемент || !тело)
{ {
return; return;
} }
console.debug("обновитьЭлемент. элемент:", элемент, "тело:", тело, "за:", задано, "ум:", умолчание);
var скорость = задано.скорость ? задано.скорость : умолчание.скорость; var скорость = задано.скорость ? задано.скорость : умолчание.скорость;
var смещениеX = задано.смещение ? задано.смещение[0] : умолание.смещение[0];
var смещениеY = задано.смещение ? задано.смещение[1] : умолание.смещение[1];
var смещениеX = задано["смещение.0"] ? задано["смещение.0"] : умолчание.смещение[0];
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.top = `${y}px`;
}
элемент.style.left = `${x}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`;
} }
*/

+ 1
- 1
700.пуск.js View File

@@ -3,7 +3,7 @@
мир.физика.обновить(); мир.физика.обновить();
мир.объекты.обновить(); мир.объекты.обновить();
мир.игрок.обновить(); мир.игрок.обновить();
//мир.слежения.обновить();
мир.слежение.обновить();
requestAnimationFrame(мир.обновить); requestAnimationFrame(мир.обновить);
}; };




+ 4
- 2
800.пример.json.js View File

@@ -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,
}, },
/* /*


Loading…
Cancel
Save