检查对象是否相对于另一个对象位于左侧或右侧

时间:2014-06-16 19:11:44

标签: flash math actionscript

一个非常简单的数学问题。我试图在我的一个2D闪光足球点球射门游戏中实现一个简单的逻辑,以检查我的球员是在稳定的球对象的右侧还是左侧。只有当球员位于球的左侧而不是右侧时,我才想踢球。

我正在使用ActionScript 3.我正在尝试在我的主文档类中实现此逻辑。我有两个用于稳定球对象的类和一个用于我的播放器的类。

if(!moveLeft && !moveRight && canShootBall){
    for each(var footy:FootBall in footballArray){
        if(instance_Xena.hasCollided(footy) && checkIfPlayerLeft(footy)){
            trace("COLLISION WITH " +footy.getId());
            instance_Xena.playKickAnimation();
        }
    }
}

public function checkIfPlayerLeft(footy:MovieClip):Boolean{
      //check if the player is on the left side of the ball object here

}

所以我尝试计算x位置的差异,例如" instance_Xena.x - footy.x"但它会给出相同的正数。如果我可以得到一个正值,如果球员在左侧,负值,如果球员在球的右侧,那么它将解决我的问题。

我记得在3D空间中使用Vector3点积来检查玩家是在敌人前面还是后面。但不确定它是否适用于此。我该如何检查?

1 个答案:

答案 0 :(得分:0)

嘿伙计们,我终于找到了一个解决方案并且它可行。我使用了一个称为三角形的签名区域的东西,它完美地运作