2013-12-04 5 views
0

Следующий код просто «зависает» моя игра, я использую JavaScript с craftyjs .. Я думаю, что я делаю очень нуб ошибку, которая приводит в бесконечный цикл ..О в то время как петля

var trigger_de_movement=true; 
pl.animate('PlayerMovingLeft', 1, 1); //this function starts animation named PlayerMovingLeft for 1 frame and repeates 1 time.. 
while (trigger_de_movement) {/*if animation is not playing, type time and go out and stop the loop*/ 
    if (!pl.isPlaying('PlayerMovingLeft')) {//checks if animation is playing for pl(ayer) 
     var d=new Date(); 
     putMessage(d.getSeconds()+"."+d.getMilliseconds()); //this function puts message 
     trigger_de_movement=false; //to make while loop not run forever 
    } 
} 
+1

Если условие не выполнено, цикл будет бесконечным –

ответ

0

Проблема есть

if(!pl.isPlaying('PlayerMovingLeft')) 

Если If statement не удается, то цикл будет бесконечным, так как переменная trigger_de_movement не верно всегда до тех пор, если утверждение становится верным. Если оно ложно, цикл бесконечен. Так что лучше вы меняете свой while to If и проверяете, что происходит

+0

НО ... если условие не выполнено, цикл снова будет работать снова? Но анимация должна прекратиться через некоторое время (я хочу выяснить это время ... поэтому я показываю сообщение о времени), поэтому, когда lopp «зацикливается» в какой-то момент, он должен остановиться, когда анимация перестала двигаться. Я ошибаюсь? и есть ли другие способы узнать скорость анимации? – Deep

Смежные вопросы