Саня Семенов
Оракул
(60497)
4 года назад
Посмотреть не могу с мобильного клавиатура не открывается но так чисто иниуитивно предполагаю что код для х ты не обернул ни в какую функцию поэтому переменные похерились. JavaScript запоминает значения переменных в функциях и если переменная объявлена как var или let то она доступна не только внутри этой функции но и в дочерних . Кроме параметров - они всегда локалтны для текущей функции
Константин ЕфименкоГуру (3721)
4 года назад
Вообще сейчас, я уже более внимательно посмотрел. Пример работает неверно, т. к. если я смещаюсь назад по оси Z, а затем хочу сдвинуться влево по оси X, то возвращаюсь обратно в исходную точку, а не начинаю двигаться относительно положения по оси Z(там где был).
Мой пример лучше смотреть на ПК.
Данное свойство, для вычислений использует 2 разные матрицы, в случае если преобразование происходит по оси X - matrix(), если по оси Z - matrix3d().
В связи с этим, мне необходимо запоминать последнее состояние переменной по осям X и Z.
По оси Z всё работает прекрасно, но когда я сделал по аналогии тоже самое для оси X, то столкнулся с тем, что по иксу почему-то происходит сброс переменной, и я получаю 0.
Вот сам пример:
https://jsfiddle.net/zxs847ry/
Есть идеи, почему так происходит? Помогите найти и исправить ошибку.