我该如何修复这个公式?

Sam*_*Sam 1 java

我刚开始学习Java.我目前正在为平台游戏编写基本代码,我遇到了一个计算y平台游戏中角色最终位置的公式的问题.

我试图编码的公式是

y = y0 + vy * t - ( 1/2 * g * t^2)
Run Code Online (Sandbox Code Playgroud)

其中,
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 );
}
Run Code Online (Sandbox Code Playgroud)

这就是代码.并且,如下所示,我插入随机值以尝试检查此公式是否正常工作.

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

当我编译并运行此代码时,我得到了50.0.问题是当我用手解决这个问题时,我得到了-75.我的代码有问题,还是因为我自己过度工作而导致大脑功能失常?提前感谢您的回答.

Kon*_*kov 7

您正在调用该xPosition ()方法两次.

简单地改变

yPosition = xPosition ( 0 , 10 , 5 );
Run Code Online (Sandbox Code Playgroud)

yPosition = yPosition ( 0 , 10 , 5 );
Run Code Online (Sandbox Code Playgroud)