Eng:If on Edge, Bounce (block)

The If on Edge, Bounce block is a Motion Block and a Stack Block. The block checks to see if its sprite is touching the edge of the screen with the move steps block and if it is, the sprite will point in a direction that mirrors the direction from which it is coming. It uses a line perpendicular to the edge to determine the reflection angle.

Example Uses
when gf clicked forever if on edge, bounce move (5) steps
 * Preventing a sprite from partially leaving the screen (often, this is followed by the Point in Direction block to stop reflection)
 * Reflection
 * Games such as "Pong"
 * Allowing sprites to bounce off the screen:

forever turn cw (pick random (-10) to (10)) degrees move (3) steps if on edge, bounce wait (0.01) secs
 * It also works for games such as Fish.

Bounce Block
Some users in the suggestions forum have requested for a block to be implemented simply called "bounce", which would allow for sprites to bounce when they collided with other sprites or with colors.

However, they are often rejected because it is impossible to bounce off a general shape without calculus.