我有一个表面有许多不同倾向的段。
对于每个细分,都有4个已知参数:
STARTX startY (段的起点的x和y) STOPX stopY (段的结束点的x和y)
然后我有一个球,中心x和y以及方向向量dx和dy。
我能够知道我的球是否与该段发生碰撞,并计算了该段内弹跳的新向量。
我缺少的是:
我如何检测球是否击中了赛段的边缘或内部,以及如何计算正确的反弹。
答案 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 ...
}