У меня вот ещё появилась идея, на движущейся картинке расставить на каждой стороне по точке и проверять каждую точку.
Проверять на прозрачность пиксели карты (которые находятся под этими точками)
вообщем получилось
вот код

Код AS3:
var point1: Point;
var point2: Point;
var point3: Point;
point1 = new Point(player.x, player.y + playerHalfHeight + 2);
point2 = localToGlobal(point1);
point3 = levelBitmap.globalToLocal(point2);
if (levelBitmap.bitmapData.getPixel(point3.x, point3.y) != 0) player.y += playerSpeed;
только углами всё таки может заехать за пределы карты, сейчас уходить нада (потом разбираться буду) но если кто решит как дополнить код буду благодарен)