2013-06-22 18 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

動作腳本3,我在問題標題 –

+0

中寫了AS3也值得標記它。 – 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

我以爲我有這個正確的,但我猜這太讓我困惑了,我得到了混亂的跡象 –