2011-12-24 78 views
0

所以,我用一個簡單的球(這基本上是UIImageView的一個對象)測試了一個遊戲,使用CGPointMake固定在屏幕上,我正在實現一個簡單的滑動手勢UIGestureRecognizerDelegate用方向和速度滑動手勢以移動屏幕上的物體?

我的目的是在一個方向上輕彈球,並且我希望球在那個方向上移動(無瑕疵 - 這意味着運動必須非常平滑),並且將取決於球的方向和速度刷卡。

我可以理解,我可以使用UISwipeGestureRecognizerUIPanGestureRecognizer,並找出揮動的速度並用CGPointMake再次固定球。

但是,是否有一種非常好的方法可以在特定的速度和方向上獲得真正平穩的球運動?

+0

AFAIK UIPanGestureRecognizer是一種滑動方式,只有在完成時纔會調用預設選擇器。所以只有平移手勢才能讓你有機會在觸摸屏幕的同時讓球跟隨手指移動。 – Till 2011-12-24 13:41:49

+0

我想要球在滑動開始後跟隨彈道...可能在滑動1秒後。 UIPanGestureRecognizer實際上隨着滑動移動球。 – Legolas 2011-12-25 00:16:11

回答

1

如果我是你,我會嘗試正常的touchesBegan:withEvent:每個UIView實現的方法。然後,您可以始終設置新框架,直到觸摸結束。然後,您可以計算方向和速度以繼續使用動畫進行移動。

+0

,我會覆蓋GestureRecognizer的相同方法,因爲它也有這個方法。您可以將識別器分配到任何視圖 - 無需創建新視圖。 – vikingosegundo 2011-12-24 16:08:51

+0

方向,是的,我可以使用一些數學來計算它。你怎麼用'touchesBegan'和'touchesEnd'來計算速度? – Legolas 2011-12-25 00:14:57

+0

您可以使用touchesMoved中的觸摸座標以及通話之間的時間來計算速度。 – lbrndnr 2011-12-25 04:59:47