-2

我正在开发一个 android 项目,我想在射弹路径中移动一个对象,但不知道该怎么做..

我得到了初始 X 和初始 Y,即横向模式下手机的左下角。我还获取了用户触摸手机时的 X 和 Y,所以我也可以通过 tan-1(y/x) 计算角度,但是如何计算曲线路径,即对象的 X 和 Y。

任何帮助将不胜感激。

谢谢

4

2 回答 2

1

您在初始点 p1 (X, Y) 处投掷弹丸。你有一个用户触摸屏幕的点,比如 p2。因此,找到方向向量,如 dir = p2 - p1 并将其归一化。然后执行以下操作:

  1. 你有初始速度,v = speed * dir,其中速度是标量因子
  2. 然后,在每个游戏滴答上附加到您当前的位置向量v = v + (0, -10); v *= dt,其中 (0, -10) 是重力因子和 dt - 游戏帧之间的时间。
于 2012-11-29T08:59:48.700 回答
0

您可以通过使用抛射体方程的参数形式来消除必须按时间间隔递增的情况。

您需要做的就是确定您想要在屏幕上移动多远(从左到右)。我称之为X方向。然后,对于 X 方向上的每个位置(可能是一个像素,可能是一些像素),您计算 Y(从下到上)方向上的相应位置。

您需要为重力引起的向下加速度设置一个值。无论您选择什么值,我都称它为 g。您还需要为射弹开始运动的速度设置一个值。无论你选择什么值,我都称它为 V。

那么参数方程为:

Y = X * tan(theta) - (g * X^2) / (2 * V^2 * (cosine(theta))^2)

所以,一旦你有了用户接触点,你就可以计算角度、theta、确定 V、g 和 X 的最大值,然后从 0 迭代到最大 X,你会得到一个点 (X,Y)对于每次迭代。

于 2012-11-29T18:05:32.293 回答