Basic (but painstacking) collision detection