【发布时间】:2014-01-10 00:30:02
【问题描述】:
我需要让我的角色降落在一个壁架上并停留在那里,但它只会一直直接穿过它。我会为所有不同的壁架创建一个数组并在我的角色击中它们时进行测试吗?任何帮助将不胜感激。
谢谢。
【问题讨论】:
标签: arrays actionscript-3 hittest
我需要让我的角色降落在一个壁架上并停留在那里,但它只会一直直接穿过它。我会为所有不同的壁架创建一个数组并在我的角色击中它们时进行测试吗?任何帮助将不胜感激。
谢谢。
【问题讨论】:
标签: arrays actionscript-3 hittest
地板和物体的碰撞检测实际上与 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”是您用作悬崖的变量的名称。此外,“玩家”可以替换为您所称的要进入壁架的对象。反正我在我的一门计算机课上就是这样做的 :) 希望有帮助!
【讨论】: