计算从一个对象到另一个对象的路径并沿其移动

Calculate a path from one object to another and move along it?

本文关键字:一个对象 路径 移动 计算      更新时间:2023-09-26

假设我有一个这样的对象。。。

var objA = {
    x:0,
    y:0,
    speed:{x:0, y:0},
    angle:0,
    turnSpeed:8
}

我在游戏中的每一步都想把它移向坐标(10,10)处的objB。ObjA已经在移动,并且突然需要移动到objB的位置。假设objA有一个函数turnTo(),它可以在每一步基于其turnSpeed将其转向objB。我可以做一些像。。。

objA.speed.x += Math.cos((90 - obj.angle) * Math.PI / 180);
objA.speed.y += -Math.sin((90 - obj.angle) * Math.PI / 180); 

根据角度将objA移向objB,但如果objA已经在移动,它就不太可能碰到objB了,因为这没有考虑到objA的当前速度。

如何计算到objB的路径,以便objA精确地命中它?

首先,看看我的Javascript游戏的坐标-基于角度,我什么时候使用Sin-Cos和Tan?

您知道objB的x和y坐标(我假设它们保持不变),并且您可以使用JavaScript获得objA的x和y坐标,因此您可以使用简单的trig将问题解决为从objA到objB任意点的三角形。