我有多个对象,但为了简单起见,两个对象在JS Canvas中移动,每个对象调整自己的速度/方向/等。
如果他们接近"对于彼此,我想计算他们的路径是否相交,然后相应地调整路径,这样他们就不会。或者,如果路径相交但它们将在不同时间穿过交叉点(并且不会碰撞/重叠),则无需更改任何内容。
我正在使用带有(当前)2D坐标系的Javascript Canvas,其中矢量形式的位置和移动
objects = [];
objects.push(object(...));
objects.push(object(...));
function object() {
this.movement = {
p:{x:0, y:0, z:0},
v:{x:0, y:0, z:0}
}
this.step = function() {
//various changes to vector V to amend directional vector
...
myvectoradd( this.movement.p, this.movement.v );
}
this.draw = function() {
...
}
this.checkCollision = function() {
//for each object in objects
//if not self, then
//if "near" other object
//check if path is intersecting with other object
}
}
objects[0].movement.p
是职位
objects[0].movement.v
是移动向量(添加到每个.step())
非常感谢, 詹姆斯