2014-06-16 90 views
-1

一个非常简单的数学问题。我试图在我的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点产品来检查玩家是在前面还是在敌人后面。但不知道它是否适用于此。我将如何检查它?

+0

你试过了什么?你为什么不能自己回答这个问题?您可以通过哪种方式访问​​玩家/对象的坐标?你想在什么环境中实现这个功能? – Sam

+0

对不起,如此含糊不清。我编辑了我的第一篇文章,现在更清晰 – Htlcs

+1

我不知道ActionScript,但为什么你总是得到积极的而不是+ - 号码?你会得到什么“相同的正数”? – Sam

回答

0

嘿家伙我终于找到了一个解决方案,它的工作原理。我使用了一种被称为三角形的签名区域的东西,它的工作很完美

+0

你不只是检查玩家x是否小于球x? –

相关问题