# Car not accelerating

I am new to unity… and javascript so I though maybe making a really simple car would be a great challenge! but for some reason… when I let go of forward my car just stops right away and then goes backwards.-- heres the script

``````//Moving
var rotateSpeed : int;
private var curSpeed : float = 1;
var maxSpeed : float = 100;
var maxBackSpeed : float = 30;
var accel : float = .4;
var decSpeed : float = .4;

function Update()
{
//Moving & Rotating the car

var yRotateSpeed : float = Input.GetAxis("Horizontal") * rotateSpeed * Time.deltaTime;
var ifForward : float = Input.GetAxis("Vertical");

//Determining if the car is going forward AND Accelerating/Deaccelerating
//Going forwards
if (ifForward > 0)
{
curSpeed += accel;
if (curSpeed >= maxSpeed)
{
curSpeed = maxSpeed;
}
//Going backwards
//Need going backwards script

//********************************************************

}
// Decease Speed/Stopping
var idle : boolean = false;
if (ifForward == 0)
{
idle = true;
}else{
idle = false;
}

while (idle && curSpeed > 0)
{
curSpeed -= decSpeed;
}

//Current Speed Translate
transform.Translate(0, 0, curSpeed * Time.deltaTime);
transform.Rotate(0, yRotateSpeed, 0);
}
``````

Try clamping curSpeed to 0.0f when decelerating.

I would set idle = false before you read the Vertical stick axis, then only set it to true if you enter the

``````if(ifForward > 0)
``````

block.

You could also try wrapping your transform.Translate call like this:

``````if(!idle) {
transform.Translate(0, 0, curSpeed * Time.deltaTime);
}
``````

Lastly, you should probably be using Time.deltaTime in when incrementing/decrementing curSpeed:

``````curSpeed += accel * Time.deltaTime; //adjust accel as needed
``````