Fix collision being off by half a tile

Note: This causes a bug with render order. My best guess is that there
is a round() that can be replaced with floor(), but I have no idea
where.