Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Не могу получить последнее состояние переменной. Помогите исправить ошибку.

Константин Ефименко Гуру (3721), на голосовании 4 года назад
У меня есть небольшая сценка, на ней можно перемещаться посредством - 'w,s,a,d'(можно и на русской раскладке). Перемещение происходит посредством CSS свойства 'transform'.

Данное свойство, для вычислений использует 2 разные матрицы, в случае если преобразование происходит по оси X - matrix(), если по оси Z - matrix3d().

В связи с этим, мне необходимо запоминать последнее состояние переменной по осям X и Z.

По оси Z всё работает прекрасно, но когда я сделал по аналогии тоже самое для оси X, то столкнулся с тем, что по иксу почему-то происходит сброс переменной, и я получаю 0.

Вот сам пример:

https://jsfiddle.net/zxs847ry/

Есть идеи, почему так происходит? Помогите найти и исправить ошибку.
Голосование за лучший ответ
Саня Семенов Оракул (60428) 4 года назад
Посмотреть не могу с мобильного клавиатура не открывается но так чисто иниуитивно предполагаю что код для х ты не обернул ни в какую функцию поэтому переменные похерились. JavaScript запоминает значения переменных в функциях и если переменная объявлена как var или let то она доступна не только внутри этой функции но и в дочерних . Кроме параметров - они всегда локалтны для текущей функции
Константин ЕфименкоГуру (3721) 4 года назад
Ошибаетесь, дело совсем в другом.
Константин ЕфименкоГуру (3721) 4 года назад
Вообще сейчас, я уже более внимательно посмотрел. Пример работает неверно, т. к. если я смещаюсь назад по оси Z, а затем хочу сдвинуться влево по оси X, то возвращаюсь обратно в исходную точку, а не начинаю двигаться относительно положения по оси Z(там где был).

Мой пример лучше смотреть на ПК.
Похожие вопросы