沿斜坡移动精灵

时间:2010-12-20 14:29:28

标签: objective-c sprite

我正在尝试与另一个精灵进行精灵交换。到目前为止,我认为我可以以某种方式使用两个精灵的原始位置之间的斜率来移动它们,但我迷失了如何沿着斜坡增加它们的位置。

1 个答案:

答案 0 :(得分:3)

您需要在两个精灵之间创建一个向量,对其进行标准化,将该标准化向量乘以您希望精灵每帧移动多少,然后将该向量添加到您正在移动的位置的精灵中。你没有指定语言,所以这里有一些伪代码:

var p1 = sprite1.location
var p2 = sprite2.location

var vec = p2.subtract(p1)
vec.normalize()
vec.multiply(6) // I want it to advance 6 units per move

while (sprite1.location != sprite2.location) // best to check with some epsilon
  sprite1.location = sprite1.location.add(vec)
end