Trong bài mình nghĩ là họ đã giải thích ý nghĩa của movingVectorX và movingVectorY rồi. Đó là số pixel nhân vậy cần di chuyển theo chiều X và Y.
Trong công thức, ta có distance = elapsedTime*VELOCITY
Ở đây người hướng dẫn đặt tên có thể sẽ gây hiểu nhầm vì Velocity là đại lượng vector có hướng, hay còn gọi là vận tốc nhưng trong bài viết tác giả muốn sử dụng nó là số pixel di chuyển trên giây thì nên được đặt là SPEED.
Bây giờ, ta muốn di chuyển nhân vật dọc theo vector (10, 5) với vận tốc SPEED. Nhưng ta không biết ta cần di chuyển với vận tốc bao nhiêu theo x và y cả Vì để biết được vị trí nhân vật, ta áp dụng công thức.
x = x +elapsedTime*speedX;
y = y +elapsedTime*speedY;
Ta có khoảng thời gian cần để nhân vật tiến tới vị trí (10,5) là t = vectorLength/SPEED và ta mong đợi x đi tới điểm 10 và y đi tới điểm 5 cũng trong khoảng thời gian này. Từ đó, dễ dàng tìm được speedX = movingVectorX/t (y tương tự).
Gộp chung lại, ta có:
x = x + (elapsedTime*SPEED)*movingVectorX/vectorLength;
x = x + distance*movingVectorX/vectorLength;
(tương tự với y)