我在屏幕顶部制作了5个“endzones”,但它们根本没有被检测到。拍摄区域后,它将被锁定。
像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");
}
这是在Action Script 3中
答案 0 :(得分: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)
。当您将变量放在常量之前进行比较时,可以更容易地看到这样的错误。