如何使用JavaScript制作二维引力?

时间:2014-11-03 22:06:03

标签: unity3d unityscript

所以我正在制作这个2D玩家控制月球的太空游戏,月亮旋转的速度越快,物体就越快。所以问题是如何让物体以月球的速度下降。希望这个足够详细。

这就是我对月球控制所拥有的:

var mGravity:int=1;
var mGravityMax:int=63;
var mGravityMin:int=1;
var speedDamp:float=0.5;
private var speedDampV:float;

function Start () {


}

function Update () {

    transform.Rotate(Vector3.forward * Time.deltaTime * mGravity);

    if(Input.GetKeyDown("1"))
      if(mGravity == mGravityMin)
        Debug.Log("Lowest Spped!");

        else 
            mGravity = Mathf.SmoothDamp(mGravity,mGravityMin,speedDampV,speedDamp);
            Debug.Log(mGravity);

    if(Input.GetKeyDown("2"))
      if(mGravity == mGravityMax)
        Debug.Log("Max Speed!");

        else
            mGravity = Mathf.SmoothDamp(mGravity,mGravityMax,speedDampV,speedDamp);
            Debug.Log(mGravity);
}

1 个答案:

答案 0 :(得分:0)

旋转物体不会增加其重力。

你对人造重力和重力之间存在误解。人造重力是加速度的向心力,仅适用于系统中的物体。这意味着,如果你在月球上,你会感觉到加速度,但是如果你在月亮之上你就不会,那么你就不会被它吸引,因为它的旋转速度更快。

因此你的游戏不太现实,所以你可以想出自己的方程式。例如:

F = a_rot/2;

然后将该力施加到月亮吸引的物体上。