2017-02-14 2 views
0

У меня есть игра, в которой я перемещаю квадрат. Блоки на верхнем слое перекрывают круги под ними, которые не перемещаются. Поэтому, когда перетаскивание блока прекращается, я хочу запустить проверку или оператор if, чтобы увидеть, перемещается ли блок, который я перемещаю (myBlocks [objectDragging]), в пределах х пикселей пикселей центра моего круга (myCircles [objectDragging ]). objectDragging - это просто получение тега изображения. Соответствующий круг будет иметь один и тот же тег. Все работает нормально, я просто не могу понять, как проверить, находится ли блок, который я бросаю (это центральная точка), в пределах так много пикселей центральной точки круга.Определите, перетаскивается ли изображение в определенную область.

Некоторые из того, что я работаю с:

var myBlocks = [UIImageView]() 
var myCircles = [UIImageView]() 

let objectDragging = recognizer.view?.tag 

if myBlocks[objectDragging!].center.x == myCircles[objectDragging!].center.x { 
     ... 
     } //this checks for an exact match of center.x where-as I want to check 
//if the center.x for myBlocks[objectDragging!] is <= we'll say, 
//25, pixels of the myCircles[objectDragging!].center.x 

ответ

0

Обсуждение здесь, чтобы найти расстояние между двумя CGPoints:

How to find the distance between two CG points?

за Луция (ответ 2)

Вы можете использовать функцию hypot() или hypotf() для вычисления гипотенузы . Учитывая две точки p1 и p2:

CGFloat distance = hypotf(p1.x - p2.x, p1.y - p2.y); 

к югу в вашем myBlocks.center и myCircles.center для p1 и p2, а затем

if distance < 25 { 
    ... 
    } 
Смежные вопросы