我需要让我的角色落在一个壁架上并留在那里,但它只是直接通过它。我会为所有不同的壁架创建一个阵列,并在我的角色遇到它们时进行测试吗?任何帮助将不胜感激。
感谢。
答案 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”是您用作悬崖的变量的名称。此外,“玩家”可以被你正在调用你的对象的任何东西所取代。这就是我在我的一个计算机课程中做到的方式:)希望有所帮助!