如何计算我的球首先击中的哪个部分?

时间:2015-01-05 17:12:34

标签: java vector collision-detection

我有一个表面有许多不同倾向的段。

对于每个细分,都有4个已知参数:

STARTX startY (段的起点的x和y) STOPX stopY (段的结束点的x和y)

然后我有一个球,中心x和y以及方向向量dx和dy。

我能够知道我的球是否与该段发生碰撞,并计算了该段内弹跳的新向量。

我缺少的是:

我如何检测球是否击中了赛段的边缘或内部,以及如何计算正确的反弹。

1 个答案:

答案 0 :(得分:0)

你可以像

一样计算

我假设你的球的半径是变量 radius

boolean isHitRight = (startX + dx + radius ) >= stopX;

boolean isHitBottom = (startY + dy + radius ) >= stopY;


if(isHitRight) {
   // bounce ball left ..
} else if (isHitBottom) {
   // bounce ball up ...
}