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.xを呼び出すときthis.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 に答える