随着时间的推移加速球
本文关键字:加速 时间 | 更新日期: 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
。您还必须检查是否启用了单体行为或更新将不会执行