Build a HTML5 Game book 中开发游戏时如何计算碰撞

How does collisions caculates when developing game in Build an HTML5 Game book

我不明白作者在计算两个圆圈(气泡)之间的碰撞时登录。这是 Calculating collisions 部分。

作者写道:

The bubble being fired follows a set of coordinates defined by the equations:

px = ex + tdx py = ey + tdy

where px and py are points on the trajectory of the bubble’s center point. The calculation of px and py happens in jQuery’s animate method and is the standard equation for moving a point along a line. Next, we’ll calculate t at the closest point on this line to the center of the bubble that we’re checking against:

var t = dx * distToBubble.x + dy * distToBubble.y;

我不明白t是什么,为什么要用下面的公式计算:

var t = dx * distToBubble.x + dy * distToBubble.y;?

这与编程几乎没有关系,它绝对是数学。所以我觉得这个问题不应该出现在这里,但我会回答它只是为了帮助你。

I don't understand what is t

被发射的气泡的运动线由parametric equation定义,参数是变量t

why it calculates by the following formula

这个有点复杂,书上只是展示了下面计算的最终结果。有一个公式可以计算点和线之间的距离。在这种情况下,点是目标气泡的中心,线由前面所示的参数方程表示。在你解决这个问题之后,你可以推导出那个方程来找到最小距离。

虽然有更简单的方法可以解决这个问题。使用参数函数在目标气泡的原点和射出的气泡的坐标之间使用 dot product 并将其等于 0(垂直交点),您可以找到 t.

的值

重要的是本书已经为您解决了问题,并且显示了最终结果,因此您可以使用它。

祝你游戏顺利!