0

我有一个代表子弹的精灵,它的基本实现如下:

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.xthis.xNaN.

如果给定x,yrotation信息,使精灵朝着它所面对的方向移动的正确方法是什么?

4

1 回答 1

1

你有一个错字。这个:

this.x = Math.sin(this.rotation) * this.speed;

应该

this.x = Math.sin(this.direction) * this.speed;
于 2013-03-09T21:13:35.953 回答