我正在使用-mouseDragged
方法移动一些CALayers,现在我想在它们足够接近时(或当它们重叠一点点时)“捕捉”它们。
每一层都不是“正方形”:我正在绘制不同的多边形。
我认为这样做的方法是:
我不知道这是否是正确的做法。我想到的第一件事就是:
而且,即使我这样做,我也不知道如何处理(2)和(3)。
有更好的方法吗?
答案 0 :(得分:0)
这并不容易。因为CALayers不是矢量图形,所以你必须处理任何可能的形状(例如龙的图片。)
正确的碰撞很困难。而是尝试使用您要捕捉的形状测试鼠标/触摸的位置。
您可以通过检查鼠标位置处每个可能的捕捉图层的透明度来执行此操作。有关如何执行此操作的信息,请参阅this question。
更难但更好的结果:
使用像Chipmunk或Box2D这样的2D物理引擎进行碰撞检测。