diff --git a/00150.игрок.js b/00150.игрок.js index decee28..69caef0 100644 --- a/00150.игрок.js +++ b/00150.игрок.js @@ -3,6 +3,7 @@ обновить: обновитьИгрока, }; + // // // // diff --git a/00160.камера.js b/00160.камера.js index 51bfa07..6c19e0a 100644 --- a/00160.камера.js +++ b/00160.камера.js @@ -1,4 +1,5 @@ мир.камера = { + задано: {}, обновить: обновитьКамеру, }; @@ -6,10 +7,26 @@ // // // // +мир.ключники.push(function(ключ, путь, значение){ + if (!ключ.startsWith("камера")) + { + return; + } + + var свойство = путь.slice(1).join("."); + мир.камера.задано[свойство] = значение; +}); + + +// // // // + + function обновитьКамеру() { - var тело = мир.объекты.тела[мир.игрок.задано.объект]; - if (!тело) + var объект = мир.камера.задано.объект; + var центрировать = мир.камера.задано.центрировать; + var тело = мир.объекты.тела[объект]; + if (!тело || !центрировать) { return; } @@ -33,8 +50,8 @@ function обновитьКамеру() function lerp(v0, v1, t) { return v0 * (1 - t) + v1 * t; } - var x = lerp(x0, x1, 0.1); - var y = lerp(y0, y1, 0.1); + var x = lerp(x0, x1, центрировать); + var y = lerp(y0, y1, центрировать); корень.style.left = `${x}px`; корень.style.top = `${y}px`; diff --git a/01300.пример.json.js b/01300.пример.json.js index 3f55a9c..5158d10 100644 --- a/01300.пример.json.js +++ b/01300.пример.json.js @@ -44,4 +44,8 @@ скорость: [4, 13], клавиши: ["ArrowLeft", "ArrowRight", "ArrowUp"], }, + камера: { + объект: "колобок", + центрировать: 0.1, + }, });