-2

私はアンドロイドプロジェクトに取り組んでいます.オブジェクトを発射体のパスに移動したいのですが、その方法がわかりません..

最初の X と最初の Y を取得しました。つまり、横向きモードの電話の左下隅です。また、ユーザーが電話に触れたときに X と Y をフェッチするので、角度も tan-1(y/x) で計算できますが、オブジェクトの曲線パス、つまり X と Y を計算する方法は次のとおりです。

どんな助けでも大歓迎です。

ありがとう

4

2 に答える 2

1

発射物を投げる初期点 p1 (X, Y) があります。そして、ユーザーが画面に触れたポイント、たとえば p2 があります。したがって、dir = p2 - p1 のような方向ベクトルを見つけて正規化します。次に、次のようにします。

  1. 初期速度、v = 速度 * dir があり、速度はスカラー係数です。
  2. 次に、すべてのゲーム ティックで現在の位置 vectorv = 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)

したがって、ユーザータッチポイントを取得したら、角度、シータを計算し、V、g、およびXの最大値を決定し、0から最大Xまで繰り返すだけで、ポイント(X、Y)を取得できます。反復ごとに。

于 2012-11-29T18:05:32.293 に答える