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