Distance to () Category Sensing Type Reporter

The Distance to () block is a Sensing block and a Reporter block. The block reports the Euclidean distance, in pixels, between it and the mouse-pointer or a specified sprite's costume center.

The Scratch Cat saying his distance from the clam.

If there is nothing in the drop-down insert of the block, or if a sprite that was deleted is still in the drop-down insert, it reports the distance as 0.

## Example Uses

As this block can give distances between objects, it is very useful in projects that require a great deal of careful sensing and movement.

Some common uses for the Distance to () block:

• Estimating when collisions will occur
```if <(distance to [snowball v]) < (40)> then
say [Watch out!]
wait until <touching [snowball v]?>
say [] //stop saying the message
stop [all v]
```
• Helping determine how long it should take a sprite to move somewhere, judging from the distance
```set [movements v] to ([ceiling v] of ((distance to [meteor v]) / (10))) //"movements" being the amount of 10 pixel motions to reach the meteor
```
• Determining how far a rocket should fire
```set [real distance v] to (join ((distance to [asteroid v]) * (10000)) [ kilometers]) //for relating pixel distance to real life
```
• Detecting distances from an invisible sprite and displaying the score as a game
```change [score v] by ((1800) - ((10) * (distance to [bullseye v])))
```
• Making a variable change when you move the sprite around from another sprite
```forever
set [safety v] to ((100) - ((distance to [house v]) / (3))
```

## Workaround

Main article: List of Block Workarounds

This block can be replicated with the following code:

`([sqrt v] of ((((x position) - ([x position v] of [Wanted Sprite v])) * ((x position) - ([x position v] of [Wanted Sprite v]))) + (((y position) - ([y position v] of [Wanted Sprite v])) *((y position) - ([y position v] of [Wanted Sprite v])))))`

## Related Suggestion

Some Scratchers want a block that gives the distance to any location, not just a sprite.[1] It would be like this:

`(distance to x: () y: ():: sensing)`

It is technically unnecessary because it can be replicated with a similar workaround:

`([sqrt v] of ((((x position) - (wanted x)) * ((x position) - (wanted x))) + (((y position) - (wanted y)) * ((y position) - (wanted y)))))`