0

我需要这个问题的解决方案。 Image对象(水果图像)从上到下动画,就像下雪一样。我需要image使用另一个image object(篮子图像)来捕捉这些对象。所以,我想找出篮子图像和水果图像的交点。但我没有得到交点。我用过

CGRectIntersectsRect(fruitObjPresentationLayer.frame, basketObjPresentationLayer.frame);

找出交点..

4

2 回答 2

0

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

于 2013-01-11T04:49:36.263 回答
0

CGRectIntersectsRect() 返回一个布尔值而不是相交点。因此,当它们相交时,将帧位置相互比较,然后进行数学运算以找出相交的位置。

此外,框架是矩形,因此它们的交点实际上是一条线,而不是一个点。

你可以设置一个 NSTimer 来触发,比如说,每秒 60 次调用

if ([CGRectIntersectsRect(fruitObjPresentationLayer.frame,    basketObjPresentationLayer.frame)] {
//when this is called do whatever you want with the objects current frame.origin
}
于 2013-01-11T04:55:11.220 回答