2011-07-14 27 views
1

可能重複:
CGRectIntersectsRect ProblemCGRectIntersectsRect

我想提出一個應用程序有一個迷宮,我把球在界面生成器的迷宮裏(我把出口的話)我有一個touchesMoved:

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 
    UITouch *touch = [[event allTouches] anyObject]; 
    CGPoint point; 
    point = [touch locationInView:self.view]; 

    ball.center = point; 

    if (CGRectIntersectsRect(ball.frame, maze.frame)) { 
     //my stuff 
    } 
} 

我有兩個CGRectIntersectsRect if語句,我說,如果球的框架德勤那麼我的東西就會發生,但由於某種原因,每當我嘗試移動球時,都​​不會碰到迷宮的框架,//我的東西就會發生。我不知道爲什麼,也許這是因爲球在迷宮中,可能並不是因爲我說過如果cgrectintersects不合框架。那爲什麼會這樣呢?

+1

可能的複製:http://stackoverflow.com/questions/6696393/cgrectintersectsrect-problem – MByD

+1

請不要雙重發布問題。如果你沒有得到答案,你可以通過編輯更清晰的問題保持你的問題。該網站還將冒出未解答的問題供人們看到。 –

回答

8

CGRectIntersectsRect將返回true,如果rect1的任何部分位於rect2內部。所以,當你的球完全進入你的迷宮時,你的相交測試將永遠是真實的。

+0

哦,那麼,我沒有意識到,我怎麼可以修復,然後 – user842059

+0

不確定你到底想要完成什麼。 – highlycaffeinated

+0

即時通訊試圖讓它如此當我在迷宮內im我的東西不會發生,因爲現在正如你所說,因爲我開始在裏面,cgrectintersectsrect將返回爲是 – user842059

-1

如果您想要檢測球的矩形是否觸及迷宮矩形的邊緣(而不是迷宮中的任何位置),則除了CGRectIntersectsRect(ball, maze)之外,還需要測試!CGRectEqualToRect(CGRectIntersection(ball, maze), maze)

+0

這段代碼只會導致大量的錯誤 – user842059

+0

您能否詳細說明@ user842059?你看到什麼錯誤? – hatfinch

相關問題