From 20d379dce8e6085f8ac8db0ae4db06a6951ef705 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D0=B0=D0=BF?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BA=D0=BE?= Date: Sat, 26 Jun 2021 20:42:21 +0300 Subject: [PATCH] =?UTF-8?q?=D1=86=D0=B5=D0=BD=D1=82=D1=80=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D1=82=D1=8C=20json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 00150.игрок.js | 1 + 00160.камера.js | 25 +++++++++++++++++++++---- 01300.пример.json.js | 4 ++++ 3 files changed, 26 insertions(+), 4 deletions(-) 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, + }, });