2011-03-30 75 views
0

如何使用不在ViewController類中的方法檢查兩個UIImageView之間的衝突?讓對象相互「交談」?

例如:

此方法波紋管中的岩石類,但玻璃的UIImageView在ViewController中。

如果(CGRectIntersectsRect(rock.frame,glass.frame)){ // 做的東西 }

它抱怨說,玻璃未聲明。那麼,如果我從rock類調用碰撞方法,我該如何引用ViewController中的玻璃UIImageView? 我不確定如何讓課堂互相「交談」 - 這是一個我不太瞭解的概念,所以一個小例子將非常感謝!或者如果有人能指出一個很好的地方來學習這個概念,那將會有很大的幫助。 謝謝。

回答

0

該解決方案最後很簡單。我只是不明白getter和setter方法的概念。

因此,答案是做的方法在「玻璃」的對象,像這樣:

-(BOOL)collidesWithRect:(CGRect)rect 
{ 
    return (CGRectIntersectsRect(self.frame, rect)); 
} 

再從「搖滾」的對象調用它:

if([rock collidesWithRect:glass.frame]) 
{ 
    //collision code 
} 

返回true時兩個矩形相交。

我很驚訝我沒有得到任何答覆,因爲這是最終的簡單解決方案。也許我沒有正確解釋自己?希望我解釋正確的解決方案。如果沒有,請隨時糾正我。我們現在不想盲目領先盲人!