2D Game Collision Detection by Thomas Schwarzl