【问题标题】:iOS: Simple Physics for a UIViewiOS:UIView 的简单物理
【发布时间】:2012-04-07 17:52:40
【问题描述】:

我有一个UIView,用户通过在touchesMoved: 方法中设置其中心来拖动它。当用户放手时,我希望UIView 根据他们移动的速度和方向从屏幕上掉下来。

我是否需要通过将UIView 的最后一个中心点与它的新中心点进行比较来以某种方式创建一个向量?并每隔一段时间用NSTimer 减去一个固定量的向量的 y 值?

【问题讨论】:

  • 如果你愿意加倍努力,这里有一篇关于 integrating physics into UIKit 的精彩帖子。话虽如此,@Legolas 对 Cocos2D 的建议是一个更完整的解决方案。
  • 如果你使用 UIPanGesture,你可以看到速度,这会给你拖动物体的速度。以及它被拖动的位置。

标签: objective-c ios ios5 quartz-2d uiviewanimation


【解决方案1】:

是的,你需要相当数量的物理来计算

  1. 滑动速度
  2. 滑动方向

您需要使用touchesMoved 方法和计时器来跟踪滑动的时间量以及对象新位置的坐标。这应该是相当直截了当的。找到这些后,您只需添加 UIAnimation 即可将对象移动到新位置。

~ 一个建议:

我建议您查看Cocos2D 并将该库与您的应用程序集成。您不需要实现touch delegate 方法并自己计算事物~ 有用于此的库:) 它有很多库,特别是用于移动对象(或者sprites,如果你想这样称呼它们)并且你有动画easeInEaseOut等方法可以影响移动的物体。如果您正在开发某种游戏,请查看 Cocos2D 中的 chipMunk 引擎。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 2020-04-26
    • 1970-01-01
    • 2022-10-13
    • 2011-10-07
    相关资源
    最近更新 更多