Basic 2d collision detection

Where can I go to read more about basic 2d collision detection for games or just applications that have some interactivity?

Edit: How about javascript for Canvas games?


The most important theorem to know is the Separating Axis Theorem (SAT). Basicly, it allows you to detect collision between two convex polygons. A good reading material is here.

If your game only concerns with convex shapes, then sat.js is a decent choice.

However, if you need to work with concave shapes, you need to other algorithms. You can decompose a concave shape into several convex shapes, poly-decomp.js can do it for you.

This paper is very interesting if you want to dive deeper.