我刚开始学习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
。我的代码有问题,还是因为自己过度工作而导致大脑功能失常?提前感谢您的回答。
答案 0 :(得分:7)
您正在调用xPosition ()
方法两次。
只需更改
yPosition = xPosition ( 0 , 10 , 5 );
到
yPosition = yPosition ( 0 , 10 , 5 );