2010-12-20 1 views
2

스프라이트를 다른 스프라이트로 바꾸려고합니다. 지금까지 나는 라고 생각합니다. 어떻게 든 두 스프라이트의 원래 위치 사이의 기울기를 사용하여 이동할 수 있지만 그 경사를 따라 위치를 증가시키는 방법은 분실되었습니다.슬로프를 따라 스프라이트 이동

답변

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 
+0

감사합니다. 작동하도록 코드가 있습니다. 그건 그렇고, 나는 Obj-C에서 일하고 있었다. –