【问题标题】:How to make 2d gravity using JavaScript?如何使用 JavaScript 制作 2d 重力?
【发布时间】:2014-11-04 12:07:00
【问题描述】:

所以我正在制作这款 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);
}

【问题讨论】:

    标签: unity3d unityscript


    【解决方案1】:

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

    你对人造重力和重力有误解。人造重力是加速度产生的向心力,它只适用于系统中的物体。这意味着,如果你在月球上,你会感觉到加速度,但如果你在月球上,你就不会,所以你不会更喜欢它,因为它旋转得更快。

    因此,您的游戏并不现实,因此您可以提出自己的等式。例如:

    F = a_rot/2;
    

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

    【讨论】:

      猜你喜欢
      • 2017-04-30
      • 1970-01-01
      • 2015-01-16
      • 1970-01-01
      • 2012-02-08
      • 1970-01-01
      • 1970-01-01
      • 2020-09-14
      • 1970-01-01
      相关资源
      最近更新 更多