Below is the algorithm that I used for collision detection in the Legend of Tux. It may not be perfect, but it seems to get the job done. Cases 2, 5, 7, and 8 are needed because not all objects are the same size.