AS3 Sprite不会落后于对象

时间:2015-11-17 18:31:08

标签: actionscript-3 flash

我试图与多个墙壁进行伪3D碰撞。它在一定程度上起作用: 我可以与每面墙的两侧碰撞

但只在其中一面墙上,如果我要去顶部,它会像this那样位于矩形的后面,但在第二个矩形上,我会像this一样高于它{我3 39;为什么会发生这种情况(我是AS3的初学者)。使用跟踪,它表示玩家位于第0层,而墙壁位于第2层,但球仍然在墙上方。

编辑:我正在使用flashdevelop incase来改变任何东西

编辑:更改了代码,它工作正常,但忽略了第二面墙,它打印了它的名字,但没有更改布尔值

    for each (var wall in WallsList)
    {
        trace(wall.name)
        if (wall.hitTestPoint(Character.x - hitRad+.995, Character.y, true)) //col right
        {
            Character.x+=CharacterSpeed;
        }
        if (wall.hitTestPoint(Character.x + hitRad-.995, Character.y, true)) //col left
        {
            Character.x-=CharacterSpeed;
        }
        if (wall.hitTestPoint(Character.x , Character.y- hitRad+25, true)) //col bottom
        {
            Character.y+=CharacterSpeed;
        }
        if (wall.hitTestPoint(Character.x, Character.y+hitRad-25, true)) //col top
        {
            Character.y -= CharacterSpeed;
        }
        if (wall.hitTestPoint(Character.x, Character.y+hitRad, true))  // col top #2
        {
            trace(wall.name) // prints for both walls
            Top = true; // only changes for 1 wall
        }
        if (!wall.hitTestPoint(Character.x, Character.y+hitRad, true))
        {
            Top = false;
        }
    }

1 个答案:

答案 0 :(得分:0)

将墙壁物体放在球的上方:

setChildIndex(wallObject, this.numChildren - 1);