2011-05-07 46 views
2

我有一個在屏幕上移動的圖像(圖像1)和另一個靜止的圖像(圖像2)。我想要的是,如果image1是! 附近!(並且如果它接觸但不接近)圖像2,圖像1快速移動到圖像2的中心,就像磁鐵一樣。我怎樣才能做到這一點?當xcode附近有另一個圖像時,它會生成動畫

回答

3

這就像帶邊界框的rectengular形狀的碰撞檢測。您所需要的只是在計算碰撞時爲其中一個圖像的尺寸添加額外空間以定義「接近」。

但看看Collision detectionhttp://gamedev.net得到了解和一些算法。 Square/Bounding Box Collision Detection at http://gamebanana.com也不錯。

較容易的方法是當然的使用CGRectIntersectsRect():)

CGRect imageFrameWithExtraCollisionArea = CGRectInset(image1.frame, -10.0, -10.0); 

if (CGRectIntersectsRect(imageFrameWithExtraCollisionArea , image2.frame)) { 
    // do movement, see below... 
} 

移動的東西一點,像你的形象中心,可以通過動畫中心財產輕鬆完成一個圖像。

下面是一個例子,theContainerView是包含圖像myImageView的parentView:

[UIView animateWithDuration:0.2 
       animations:^{ 
         myImageView.center = theContainerView.center;  
       }]; 
+0

我們可以用它代替這個CGRectIntersectRects – 2011-05-07 20:45:04

+0

是當然的! :)我已經更新了我的答案。 – 2011-05-07 20:54:18

+0

這是我的一種類型,它應該說:CGRect而不是CGrect – 2011-05-07 21:03:25

相關問題