1

Javaの学習を始めたばかりです。現在、プラットフォーム ゲームの基本的なコードを書いていますが、yプラットフォーム ゲーム内のキャラクターの最終的な位置を計算する式に問題があります。

私がコーディングしようとしている式は

y = y0 + vy * t - ( 1/2 * g * t^2)

ここで、
y = 最終y位置。
y0 = 初期y位置;
vy =y軸に沿った速度;
g = 重力;
t = 時間;

以下は、この式のために私が書いたコードです。(xPosition のコードは無視してください)

public class Position {

static double xPosition;
static double yPosition;
final static double gravity = 10.0; //gravity on Earth rounded up to the tens place.

public static double xPosition ( double initialPosition , double xVelocity , double time ) {
    return initialPosition + xVelocity * time;
}
public static double yPosition ( double initialPosition , double yVelocity , double time ) {
    return initialPosition + ( yVelocity * time ) - ( 0.5 * gravity * time * time );
}

それがコードです。そして、以下に示すように、ランダムな値を差し込んで、この式が正しく機能するかどうかを確認しました。

public static void main ( String args[] ) {
    xPosition = xPosition ( 5 , 4 , 9 );
    System.out.println ( xPosition );        
    yPosition = xPosition ( 0 , 10 , 5 );
    System.out.println ( yPosition );
}

このコードをコンパイルして実行すると、50.0. 問題は、これを手で解いたときに-75. 私のコードに何か問題があるのでしょうか、それとも自分の働きすぎによる脳の誤動作でしょうか? 事前にご回答いただきありがとうございます。

4

1 に答える 1

7

xPosition ()メソッドを 2 回呼び出しています。

変更するだけ

yPosition = xPosition ( 0 , 10 , 5 );

yPosition = yPosition ( 0 , 10 , 5 );
于 2013-08-02T10:12:24.940 に答える