我开球的时候有多少增量?

时间:2015-11-28 08:16:25

标签: c++ geometry

我希望你们所有人都做得很好:-) 我有一个射球游戏项目(这是我第一次在开始使用C ++ 4个月后在C ++上开发游戏)。

我遇到的问题是,我想向小鼠方向射出一个球,这样我就能击出顶球。我应该对球的y和x坐标做多少增量,因为它完全取决于方向?

我现在拥有的是鼠标的坐标,手柄的坐标和底线的坐标。我想的公式是y=(slope)x+c slope=(y2-y1)/(x2-x1)。我很迷惑。我试过了,我不知道c是什么。请帮忙。

enter image description here

1 个答案:

答案 0 :(得分:0)

通过计算指向两个点中的每个点的两个矢量之间的差异来获得从一个点到另一个点的矢量。如果坐标系的原点位于(0,0),则指向点(a,b)的向量就是向量(a,b)。寻找"方向"从(a,b)(c,d),您需要计算(c,d) - (a,b) = (c-a,d-b)

然后,您可以对此向量进行标准化,以获得标准化的方向向量,您可以在其上应用比例因子来控制移动速度。然后将球的位置更新为:

p2 = p1 + d * dt

其中p1=(x,y)是表示时间t位置的向量; p2是表示t+dt时的位置的向量; d是归一化方向向量(见上文); dt是自上次更新以来经过的时间(时间步长)。