2013-06-22 2 views
0

Я сделал 5 "endzones" в верхней части экрана, за исключением того, что они вообще не обнаруживаются. После того, как зона занята, она заблокирована.Не удается обнаружить местоположения в AS3 с помощью операторов сравнения

Такие функции, как safeX(), делают переменную xsafe равной 1, поэтому они перестанут работать после их взятия, но отслеживает только последнюю строку. Они являются предопределенными местоположениями, поэтому он должен работать, но он всегда пропускает последнее «другое». Я понятия не имею, что изменить в этом коде, он работает в другом месте в программе, но не здесь:

if (-5 > man.x && man.x > 25) { 
    if (onesafe == 0) { 
     safeOne(); 
     trace("1 done") 
    } else { 
     deadMan(); 
     trace("1 full") 
    } 
} else if (55 > man.x && man.x > 85) { 
    if (twosafe == 0) { 
     safeTwo(); 
     trace("2 done") 
    } else { 
     deadMan(); 
     trace("2 full") 
    } 
} else if (115 > man.x && man.x > 145) { 
    if (threesafe == 0) { 
     safeThree(); 
     trace("3 done") 
    } else { 
     deadMan(); 
     trace("3 full") 
    } 
} else if (175 > man.x && man.x > 205) { 
    if (foursafe == 0) { 
     safeFour(); 
     trace("4 done") 
    } else { 
     deadMan(); 
     trace("4 full") 
    } 
} else if (235 > man.x && man.x > 265) { 
    if (fivesafe == 0) { 
     safeFive(); 
     trace("5 done") 
    } else { 
     deadMan(); 
     trace("5 full") 
    } 
} else { 
    deadMan(); 
    trace("last row"); 
} 

Это в действии Сценарий 3

+0

На каком языке это ...? – Makoto

+0

Action Script 3, я написал AS3 в заголовке вопроса –

+0

Стоит отметить его как таковую. – Makoto

ответ

0

Он переходит к последнему else потому что все условия невозможно. Я думаю, что у вас есть некоторые из ваших > и < знаков назад.

Например, в первом if, вы проверяете, если -5 > man.x, или если man.x является менее-5. Затем вы проверяете, man.x > 25. Эта переменная не может быть меньше -5 и больше 25 одновременно.

Возможно, вы хотели сказать if (-5 < man.x && man.x < 25).

Более чистый способ написать это будет if (man.x > -5 && man.x < 25). Это облегчает просмотр таких ошибок, когда вы добавляете переменную перед константой в сравнение.

+0

О, это объясняет это ... Я скопировал код из другой части программы, но я не стал проверять номера после того, как я их изменил ... Спасибо за вашу помощь. –

+0

Я думал, что у меня было это правильно, хотя, я думаю, это меня слишком смутило, и у меня были замешаны знаки –