2014-01-29 41 views
3

我試圖弄清楚爲什麼這個函數不執行遊戲結束函數,當球的位置和塊的位置完全一樣,並且當錨點相同時。如果CGPointEqualToPoint不起作用

if (CGPointEqualToPoint(ball.position,block.position)) { 
     if (CGPointEqualToPoint(ball.anchorPoint,monster1.anchorPoint)) { 
      [self theGameEnd]; 
     } 
    } 
+0

你能告訴我你的要求嗎 –

+0

嘗試locationInView –

+0

你有調試嗎? – Wain

回答

2

CGPointEqualToPoint實施是

CG_INLINE bool __CGPointEqualToPoint(CGPoint point1, CGPoint point2) 
{ 
    return point1.x == point2.x && point1.y == point2.y; 
} 

...所以座標必須絕對等於返回true。

這並非總是如此CGFloat類型,即使像素似乎對齊。在您的動畫或遊戲模擬代碼中計算它們的方式可能會產生很小的錯誤。

您可以嘗試在比較它們之前將值舍入或允許有小的偏差。