【发布时间】:2017-06-24 03:24:41
【问题描述】:
我正在用 javascript 开发一个动画,其中汽车向一个人移动并选择,但目前我只是用下面的代码斜着向那个人行驶而不是一条路径。
Car.prototype.main = function() {
var angle = angleBetweenTwoPoints(this.target.position, this.position);
var cos = Math.cos(degreeToRadian(angle)) * -1;
var sin = Math.sin(degreeToRadian(angle));
var _this = _super.call(this) || this;
this.angle = angle;
this.position.x += cos * this.speed;
this.position.y -= sin * this.speed;
if (distance(this.position, this.target.position) < 10 && this.image == GameImage.getImage("hero") ) {
this.target.position.x = Math.random() * mainCanvas.width;
this.target.position.y = Math.random() * mainCanvas.height;
this.hitCount++;
console.log(hitCount);
ctx.fillText("points : " + hitCount, 32, 32);
this.changeImage = true;
_this.speed = 3;
this.changeImageTime = Date.now() + 600; //0.5 sec from now.
this.image = (this.image == GameImage.getImage("hero"))? GameImage.getImage("hero_other") : GameImage.getImage("hero");
}
if(this.changeImage){
if(Date.now() > this.changeImageTime){
this.changeImage = false;
_this.speed = 9;
this.image = (this.image == GameImage.getImage("hero_other"))? GameImage.getImage("hero") : GameImage.getImage("hero_other");
}
}
};
return Car;
}(Actor));
但是我想跟随一条路径。我还创建了一些网格,当你单击它记录控制台它是哪个网格的图像时。但我无法在路径中移动汽车。为了完全理解动画是在 animation.
感谢任何帮助
【问题讨论】:
-
你拥有大部分你想要的东西。但与其从一个点移动到另一个点,不如创建一组沿您想要遵循的路径的航点。从第一个开始,然后移动到第二个,当你到达那里时,让它成为第一个点,然后移动到下一个点。以此类推,直到你到达终点。
-
是的,你是完全正确的。正如你所说,我需要创建航点,这对我来说是一个非常棘手的部分。如果你不介意你能提供一个工作示例
标签: javascript jquery html canvas