Показать сообщение отдельно
  #1 (permalink)  
Старый 11.12.2018, 08:21
Кандидат Javascript-наук
Отправить личное сообщение для Retro_1477 Посмотреть профиль Найти все сообщения от Retro_1477
 
Регистрация: 14.04.2018
Сообщений: 113

Зависания при нажатии на экран
Почему то при обработке функции которая отвечает за касания на экране происходят подвисания. У меня есть игра, которая каждый кадр вызывает функцию mobileController, она проверяет если нажатие на экране. Вот код:
/
var button1 = undefined,
  button2 = undefined;

function mobileController() {
  var el = document.getElementsByTagName('body')[0];


  el.addEventListener("touchstart", handleStart, false);
  el.addEventListener("touchend", handleEnd, false);
  el.addEventListener("touchmove", handleMove, false);

  function handleStart(evt) {
    var touches = evt.changedTouches;
    if (window.innerWidth / 2 < touches[0].pageX)
      button1 = true;
    button2 = false;
    if (window.innerWidth / 2 > touches[0].pageX) {
      button2 = true;
      button1 = false
    }
  }
  
    function handleEnd(evt) {
      var touches = evt.changedTouches;
      if (window.innerWidth / 2 < touches[0].pageX)
        button1 = false;
      button2 = false;
      if (window.innerWidth / 2 > touches[0].pageX) {
        button2 = false;
        button1 = false
      }
    }

    function handleMove(evt) {
      var touches = evt.changedTouches;
      if (window.innerWidth / 2 < touches[0].pageX)
        button1 = true;
      button2 = false;
      if (window.innerWidth / 2 > touches[0].pageX) {
        button2 = true;
        button1 = false
      }

    }
    
};


button1 и button2 отвечают за передвижение персонажа вправо и влево.Причём в начале игры всё работает нормально, но постепенно начинает падать fps.

Подскажите как можно оптимизировать данный код?
Ответить с цитированием