我真的需要幫助找出一個速度方程來發射玩家從一個X Y Z位置到另一個。從看other threads我創建了下面的代碼(代碼不工作)需要一個方程來找到所需的速度
public void vJump(Entity entity, Location loc, double time)
{
this.entity = entity;
entity.setVelocity(getV(entity.getLocation(), loc, time));
}
private Vector getV(Location p1, Location p2, double t)
{
double x = p2.getX() - p1.getX();
double y = p2.getY() - p1.getY();
double z = p2.getZ() - p1.getZ();
double gravity = -14.266;
return new Vector(getVelocity(x,gravity,t), getVelocity(y,gravity,t), getVelocity(z,gravity,t));
}
private double getVelocity(double d, double a, double t)
{
a*=-.5;
a*=Math.pow(t,2);
d-=a;
return d/t;
}
我不知道在我的世界的比重也不知道運動摩擦。上述代碼的問題在於它沒有朝着正確的方向前進,也沒有產生我期待的拋物線效應。
如需更快獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。 –
好的,每次這個被稱爲當前的位置通過,而不是初步的位置,這將使事情有點平穩。 –
你能跟蹤其他領域嗎?就像起跑位置以及跳起之後已經過去了多少時間一樣 –