随着时间的推移加速球

本文关键字:加速 时间 | 更新日期: 2023-09-27 18:33:31

我有一个球,它需要随着时间的推移加速,但给的力量很小。我试图用 Time.deltatime 除以特定值加速,但它不起作用。

这是我的代码示例(要开始游戏,您需要一键式,球就会以恒定的速度移动),我的问题是如何在一段时间内自动加速球。

void Start () 
{   
    Application.targetFrameRate = 60;
    gameStart = false;
}
void Update ()
{
    if (!gameStart) 
    {
        if (Input.touchCount >= 1) 
        {
            gameStart = true;
            GetComponent<Rigidbody2D> ().AddForce (new Vector2 (1f, 0.5f) * force);

        }
    }
}

随着时间的推移加速球

你可以试试这个,我没有更改任何变量名称来保持对原始代码的熟悉

Rigidbody2D myRigidbody
void Awake(){ myRigidbody = GetComponent<Rigidbody2D>(); }
void Start () 
{   
    Application.targetFrameRate = 60;
    gameStart = false;
    // Invokes the method setGameStartToFalse in 2 seconds, then repeatedly every 1 seconds.
    InvokeRepeating("setGameStartToFalse", 2f, 1.0F);
}
void FixedUpdate ()
{
    if (!gameStart) 
    {
        if (Input.touchCount >= 1) 
        {
            gameStart = true;
            myRigidbody.AddForce(new Vector2 (1f, 0.5f) * force);
        }
    }
}
void setGameStartToFalse()
{
    gameStart = false;
}

Update()方法中,您设置了gamestart to true,因此应用程序不会在第一个if内执行代码,直到您再次设置gamestart to false。您还必须检查是否启用了单体行为或更新将不会执行