Показать сообщение отдельно
  #5 (permalink)  
Старый 14.04.2014, 18:14
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Так ваши if..else не рабочие потому что непонятно что проверяют. Или я чего-то не понимаю т.к. вижу эту игрушку первый раз в жизни.
Насколько я понял this.on - вешает обработчик на "событие" соприкосновения со стеной т.е. функция которая передана вторым параметром выполнится когда робот соприкасается с соответствующими стенами. При этому первый аргумент функции получает значени true если произошло событие соприкосновения по стеной и false если произошел отрыв от стены. Соответственно по этим событиям и надо ориентироваться.

Сообщение от Blondinka Посмотреть сообщение
Ваш код не проходит весь путь.
Я просто показал как правильно писать надо. Вот код проходящий путь:
this.on("start", function(){
  this.thrusters.top(true); 
});

this.on('sensor:top', function(contact) {
  if (contact) {
    this.thrusters.right(true);
    this.thrusters.bottom(false);
  }
});

this.on('sensor:right', function(contact) {
  if (contact) {
    this.thrusters.bottom(true);
    this.thrusters.left(false);
  }
});

this.on('sensor:bottom', function(contact) {
  if (contact) {
    this.thrusters.left(true);
    this.thrusters.top(false);
  }
});

this.on('sensor:left', function(contact) {
  if (contact) {
    this.thrusters.top(true);
    this.thrusters.right(false);
  }
});
Ответить с цитированием