私はアンドロイドプロジェクトに取り組んでいます.オブジェクトを発射体のパスに移動したいのですが、その方法がわかりません..
最初の X と最初の Y を取得しました。つまり、横向きモードの電話の左下隅です。また、ユーザーが電話に触れたときに X と Y をフェッチするので、角度も tan-1(y/x) で計算できますが、オブジェクトの曲線パス、つまり X と Y を計算する方法は次のとおりです。
どんな助けでも大歓迎です。
ありがとう
発射物を投げる初期点 p1 (X, Y) があります。そして、ユーザーが画面に触れたポイント、たとえば p2 があります。したがって、dir = p2 - p1 のような方向ベクトルを見つけて正規化します。次に、次のようにします。
v = v + (0, -10); v *= dt
に追加します。ここで、(0, -10) は重力係数であり、dt - ゲーム フレーム間の時間です。発射体方程式のパラメトリック形式を使用することにより、時間間隔で増分する必要をなくすことができます。
あなたがする必要があるのは、あなたが移動したい画面をどれだけ横切って(左から右に)移動するかを決定することです。それを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)を取得できます。反復ごとに。