我有一个代表子弹的精灵,它的基本实现如下:
function Bullet(x, y, rotation) {
this.x = x;
this.y = y;
this.direction = rotation;
this.speed = 5;
}
Bullet.prototype.update = function() {
// Move the bullet forward
this.x = Math.sin(this.rotation) * this.speed;
this.x = Math.cos(this.rotation) * this.speed;
}
我在这里要做的是将子弹朝着它面向的方向和相对于它的速度向前移动。但是,在调用update()
方法this.x
和this.x
为NaN
时。
如果精灵在给出x
,y
和rotation
信息的情况下,使精灵朝着正方向移动的正确方法是什么?
答案 0 :(得分:1)
你有一个错字。这样:
this.x = Math.sin(this.rotation) * this.speed;
应该是
this.x = Math.sin(this.direction) * this.speed;