Единственная проверка, которая приходит на ум (хотя она и захардкодена) это после перемещения проверить возможно ли положение. Не прошло. Воспользовался фиксацией первоначального Х для проверки границ, тоже не работает. Подкиньте идею куда копать.