2013-07-18 62 views
0

使用此代碼來嘗試檢測兩個圖像之間的衝突,其中一個圖像處於動畫中,但不起作用。使用UIAnimation檢測衝突

[UIView animateWithDuration:5 animations:^{ 
     bird.center = CGPointMake(bird.center.x, 600); 
     fallTimer = [NSTimer scheduledTimerWithTimeInterval:.001 target:self selector:@selector(check) userInfo:nil repeats:YES]; 
    }]; 

-(void)check { 
    if (CGRectIntersectsRect(bird.frame, cat.frame)) { 
     NSLog(@"YES"); 
    } 
} 

如何檢測碰撞?

+0

你的時間間隔是可笑的小(0.001秒)。它在代碼中看起來像鳥的位置是靜態的。貓是否在移動,你可以在貓動畫中進行檢查嗎? –

+0

貓是動態的,而貓是靜態的。 –

回答

0

在動畫中不能使用視圖的框架,返回的值將不準確。相反,您應該能夠從layer的視圖中獲取presentationLayer並檢查其框架。

+0

我該怎麼做? –

+0

而不是'bird.frame',請嘗試'bird.layer.presentationLayer.frame'。 – Wain

+0

嘗試過它,得到以下錯誤:在'id'類型的對象上找不到'屬性'框架。任何其他想法? –