2013-08-02 112 views
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。我的代碼有什麼問題,還是因爲過度使用自己而導致大腦故障?提前感謝您的回答。

+7

這個問題似乎是題外話,因爲它是關於一個錯字。 –

+0

@Benjamin。天啊。當我犯這樣的錯誤時,我討厭它。感謝您指出。 –

+1

避免爲您的方法和變量使用相同的名稱。它會爲您節省一些未來的麻煩。 – Lai

回答

7

您正在撥打xPosition()方法兩次。

簡單地改變

yPosition = xPosition (0 , 10 , 5); 

yPosition = yPosition (0 , 10 , 5); 
+0

謝謝!你指出了我一直在尋找過去10分鐘的錯誤。 –