试图在划桨比赛中定义桨位以创造更好的球碰撞物理

时间:2017-01-12 15:07:41

标签: c# xna

所以我试图弄清楚如何将我的球拍的矩形分开,这样我就可以在球拍上定义球可以击中的不同点。我想这样做,如果在球的左侧或右侧击球,那么球的方向会稍微改变,而不是每次都遵循完全相同的路径。

这是我的paddle类(我开始在isboxcolliding方法中编写我需要的代码,但却陷入困境和迷茫):

lqCreated

}

任何帮助都会有很大帮助!

1 个答案:

答案 0 :(得分:0)

您不一定需要拆开碰撞矩形。您可以通过获取以下信息来检查碰撞是在左侧还是右侧。

  • 发生碰撞时碰撞点或球的中心位置,让我们称之为Vector2 collisionPoint
  • 球拍的中心位置,我们称之为Vector2 paddleCentrePosition

仅当拨片不旋转时才有效。

Vector2 difference = collisionPoint - paddleCentrePosition;
if(difference.x > 0) {
    /*Right side of the paddle*/
}
else if(difference.x < 0) {
    /*Left side of the paddle*/
}
else{
    /*The exact same position*/
}