【问题标题】:Moving an Object to A Point将对象移动到一个点
【发布时间】:2010-11-29 20:45:47
【问题描述】:


我希望是另一个相对简单的问题。
我有一个人对象,我将其移动到用户触摸的屏幕上某个点指定的点。
我想要一个物体移动到位置的设定速度。
但是,我不确定该怎么做,因为每次计算它时,它要么具有不同的速度,要么 x 原点在 y 原点之前到达那里,反之亦然。
我希望能够以相同的速度移动它们并让它们同时到达该点。
我希望我已经很好地解释了这一点,如果没有请提出问题
提前感谢
迪斯科

【问题讨论】:

  • 你现在如何实现移动?人是某种 uiview 吗?
  • 好问题。我正在使用一个 opengl 视图,每次绘制它都会调用我的 Player 对象中的一个方法来计算它的位置,具体取决于用户触摸的位置。如果它不在那个位置,它会在玩家对象的 x 和 y 上添加一些东西。我的播放器对象是一个顶点,我使用它的 x 和 y 移动它

标签: iphone objective-c


【解决方案1】:

在您的更新函数中,计算从 A 点到 B 点的 X 和 Y 距离,并且每一帧将差值增加相同的 分数 而不是一个常数值。

player.X += difference / frameCount.

【讨论】:

  • 我会不会得到不同的距离,因为随着差异的变化,我会得到不同的值来增加?
【解决方案2】:

嗯,速度是距离*时间,而你需要的是一个 NSTimer 的实例。使用 timerWithTimeInterval:invocation:repeats: 并让它调用 moveObject 方法。 moveObject 方法每次调用时都会将对象移动一定距离,直到对象的对象位置等于目标位置。然后 moveObject 方法使计时器无效,并且 Bob 是你的叔叔。

---更新---- 难道你不知道吗,我刚写完这篇文章,我看到了什么? UIView animateWithDuration:animations: 。就是上面的,但是,就像,更容易。至少,我希望如此,因为我自己没有使用过它。然而。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-20
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多