我正在尝试使用 switch 语句进行简单的碰撞检测。该语句获取某个对象的 y 位置,然后检测该对象的 x 是否与另一个对象相同。问题是我在 case 中有 if 语句,即使条件不满足,它也会遍历整个 if 语句。该对象应该在被敌人击中后被送回起点(敌人正在通过屏幕移动)并以 19 为增量移动,因此符合条件。问题是我似乎无法将它向上移动,因为每当我遇到这种情况(y = 221)时,它都会不断被送回起点。当我从 switch 语句中删除 deadObject() 时,它工作正常,并且只在遇到敌人时打印“dead”。我该如何解决这个问题?
我一直在互联网上四处寻找这个,但我找不到任何与 switch 语句中的 if 语句相关的 AS3。谢谢你的帮助
public function enterFrame(me:Event)
{
position = objectA.y
switch(position)
{
case 221:
if (objectA.x == enemy1.x || objectA.x == enemy1.x + 10)
trace("dead1");
deadObject()
if (objectA.x == enemy2.x || objectA.x == enemy2.x + 10)
trace("dead1");
deadObject()
if (objectA.x == enemy3.x || objectA.x == enemy3.x + 10)
trace("dead1");
deadObject()
break;
}
}
public function deadObject()
{
objectA.x = 133;
objectA = 240;
}