hitTestPoint或hitTestObject?

时间:2014-01-10 00:30:02

标签: arrays actionscript-3 hittest

我需要让我的角色落在一个壁架上并留在那里,但它只是直接通过它。我会为所有不同的壁架创建一个阵列,并在我的角色遇到它们时进行测试吗?任何帮助将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:0)

地板和东西的碰撞检测实际上与hitTesting有很多不同之处在于需要始终看到物体正在接触的想法。尝试这样的事情!

//loop through all the platform objects to generate the level
var level:Array = new Array();

for (var i=0; i<numChildren; i++)
{
if (getChildAt(i) is platform)
{
    level.push(getChildAt(i).getRect(this));
}
}



for (i=0; i<level.length; i++)
{
if (player.getRect(this).intersects(level[i]))
{
    if (speedX > 0) ////moving right collision and stuffs
        { 
            player.x = level[i].left-player.width/2;
        }
    if (speedX < 0) ////moving left collision and stuffs
        { 
            player.x = level[i].right+player.width/2;
        }
    speedX = 0 //kills the speed
}
}

speedX是字符水平移动的速度,“platform”是您用作悬崖的变量的名称。此外,“玩家”可以被你正在调用你的对象的任何东西所取代。这就是我在我的一个计算机课程中做到的方式:)希望有所帮助!