2011-12-24 64 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