在Scala中放置对象

时间:2019-02-20 04:30:33

标签: java scala

我希望我的代码类似于下图,其中一个人将一个物体放在地面上。该图类似于一个人将在z维度上下降的许多对象中的一个对象。初始速度为10,初始距离为0。重力为9.81。现在,我们将只使用该对象。必须在位置之前设置速度。我的代码未返回正确的输出。

这是我的Scala代码

class PhysicsVector(val x: Double, val y: Double, val z: Double){
}


class PhysicalObject(var location: PhysicsVector, var velocity: PhysicsVector){
}

class World(var gravity:Double){
var objects: List[PhysicalObject] = List()
}

object Physics {
def updateWorld(earth: World, deltaTime: Double): Unit = {
    val initial = 10.0
    for (i<-earth.objects){
    val zVelocity = -(initial-(earth.gravity*deltaTime))
    val d = 0
    i.velocity = new PhysicsVector(0.0, 0.0, zVelocity)
    i.location = new PhysicsVector(0.0, 0.0 , d + (zVelocity * deltaTime))
    }
}
}

这是带有公式的图 Resemble this graph

1 个答案:

答案 0 :(得分:1)

此代码将每个对象和每个调用的位置和速度设置为相同的值,因为您的所有计算都基于常量。您需要从对象读取当前的速度和位置并进行修改。