我需要这个问题的解决方案。 Image
对象(水果图像)从上到下动画,就像下雪一样。我需要image
使用另一个image object
(篮子图像)来捕捉这些对象。所以,我想找出篮子图像和水果图像的交点。但我没有得到交点。我用过
CGRectIntersectsRect(fruitObjPresentationLayer.frame, basketObjPresentationLayer.frame);
找出交点..
我需要这个问题的解决方案。 Image
对象(水果图像)从上到下动画,就像下雪一样。我需要image
使用另一个image object
(篮子图像)来捕捉这些对象。所以,我想找出篮子图像和水果图像的交点。但我没有得到交点。我用过
CGRectIntersectsRect(fruitObjPresentationLayer.frame, basketObjPresentationLayer.frame);
找出交点..
CGRectIntersectRect
是一个返回boolean
值的函数,如果两个对象之间发生冲突,您的帧被传递给此函数。在您的情况下,您需要传递两个对象的更新框架。根据您的问题,对象是从上到下的动画,这意味着两个对象的帧在运行时都会更改。因此,您需要计算frame
两个对象的当前位置,然后将更新frame
后的值传递给CGRectIntersectRect
函数。尝试将更新的帧传递给CGRectIntersectRect
解决您的问题的帧。
为了计算更新的值,您还必须找出增量值,例如
deltax = currentposition.x-previousposition.x;
deltay = currentposition.y-previousposition.y;
然后将frame
两个对象的更新为
CGRect Frame = obj1.frame;
Frame.origin.x+=delta_x;
Frame.origin.y+=delta_y;
第二个类似object
。
CGRectIntersectsRect() 返回一个布尔值而不是相交点。因此,当它们相交时,将帧位置相互比较,然后进行数学运算以找出相交的位置。
此外,框架是矩形,因此它们的交点实际上是一条线,而不是一个点。
你可以设置一个 NSTimer 来触发,比如说,每秒 60 次调用
if ([CGRectIntersectsRect(fruitObjPresentationLayer.frame, basketObjPresentationLayer.frame)] {
//when this is called do whatever you want with the objects current frame.origin
}