Velocity (not to be confused with gravity) is defined as speed in a given direction, and can therefore be negative, unlike speed alone (which is directionless and always positive). It is often used in projects for physics effects. Using velocity is a far smoother and aesthetically pleasing method than traditional scrolling.

## How to program velocity in Scratch

This is a common method used to program velocity:

```forever
if <key [left arrow v] pressed?> then
change [Speed v] by (-1) //a negative speed for leftward motion
end
if <key [right arrow v] pressed?> then
change [Speed v] by (1) //a positive speed for rightward motion
end
set [Speed v] to ((Speed) * (0.9)) //a larger number increases the max speed and acceleration
change x by (Speed) //the actual motion of the sprite
```

The above technique is simple, efficient and contained within a single script. The numbers can be changed to affect how quickly the sprite can speed up and slow down. It should be noted that the number in the last set variable block must be under 1, or the sprite will speed up rather than slowing down gradually.

## Example Uses

Velocity has many uses — it can be used almost anywhere. A few of the many uses are below:

• Racing and driving games

— Vehicles with velocity are more realistic to drive with.

— Velocity makes the movement more realistic.

• Physics simulations

— For example, a bouncing ball can use this.

• Scrolling projects

— Scrollers with velocity are popular[citation needed]. In general, anywhere that a sprite is moving — simple on-off movement — can easily be enhanced with velocity.

## Example Projects

Below are some projects that use velocity: