Check out LitDev's November gold medal winner for the Small Basic Guru contest:
Small Basic: Dynamic Graphics
This is also LitDev's first gold medal! So congrats go to LitDev!
Here is an excerpt section from the article...
===============
To get sprites to bounce off each other realistically can be complicated. Basically we need to do the collision in a center of mass reference frame using geometry like the figure below, then convert from the center of mass frame back to the actual frame.
This is an example implementation of this in Small Basic.
Sub
CollisionCheck
For
i
=
1
To
Ball_Number

j
+
dx
Ball_X
[
]
dy
Ball_Y
Distance
Math
.
SquareRoot
(
*
)
If
<
Ball_Diameter
Then
Cx
Ball_vX
ball_vX
/
2
Cy
Ball_vY
ball_vY
Relative_vX
Relative_vY
Nx
Ny
L
EndIf
EndFor
EndSub
If this is not clear then perhaps avoid this or consider trying using a physics engine to do it for you, such as the LDPhysics (Box2D) method.
Here are all the winning Small Basic articles from November:
Congratulations to litdev, Nonki and Joe!
Also worth a mention were the other entries this month:
You can find all the Guru winners (for all the Microsoft technologies) here: TechNet Guru Awards  November 2013
Thanks again to LitDev!
 Ninja Ed