我有一个游戏,我在顶层的方块上方移动方块,方块上方是不可移动的。因此,当停止拖动块时,我想运行检查或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

最佳答案

在此处进行讨论以找到两个CGPoint之间的距离:

How to find the distance between two CG points?

每个Lucius(答案2)


  您可以使用hypot()或hypotf()函数来计算
  斜边。给定两个点p1和p2:

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



将myBlocks.center和myCircles.center中的sub分别用于p1和p2,然后

if distance < 25 {
    ...
    }

关于ios - 确定被拖动的图像是否在特定区域内,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42219367/

10-11 04:26