Так ваши 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);
}
});