accelerate(
var* speed,var accel,var friction);
Calculates the move distance for a given speed
and acceleration. The resistance of a surrounding medium can be given
by the friction parameter.
This function can be used for actor movement and rotation.
Parameters:
speed 
current speed in quants per tick. This value is changed by the acceleration.

accel 
acceleration in quants per square tick. 
friction 
the resistance parameter of the surrounding medium, in the range of 0..1. 0 means no resistance, 1 full resistance. 
Returns:
Distance to cover in quants.
Modifies:
speed  current speed vector in quants per tick.
Speed:
Fast
Algorithm:
if (friction == 0) {
distance = speed*time_step + 0.5*accel*time_step*time_step
speed = speed + accel*time_step
} else {
distance = accel*time_step/friction + (speedaccel/friction)*(1exp(friction*time_step))/friction
speed = accel/friction + (speedaccel/friction)*exp(friction*time_step)
}
Example:
var aspeed; // local var to store the current angular speed
// accelerate the camera leftright rotation with cursor keys
vec_add(camera.pan,accelerate(aspeed,5*key_force.x,0.7));
See also:
vec_accelerate,
smooth
► latest
version online