2016-10-02 8 views
0

私はphaser.ioでちょっとした試合をしていますが、少し問題があります。HTML5ゲームPhaser.ioはスプライト方向に武器を発射します

私はフェイザーの武器オブジェクトを使用して私のヒーローの弾丸を作ります。

左をオンにした場合を除いて、武器は正しく発砲し続けます。ここで

は私のコードは、(typescriptですで)です:

this.weapon = game.add.weapon(1500, 'shot'); 
this.weapon.bulletKillType = Phaser.Weapon.KILL_WORLD_BOUNDS; 
this.weapon.bulletSpeed = 750; 
this.weapon.fireRate = 2; 
this.weapon.bulletAngleVariance = 3; 
this.weapon.trackSprite(this, 0, 0, true); 

ここで移動機能があります:

walk = (direction) => { 

    var speed; 
    if (this.isGrounded) { 
     speed = this.accel; 
    } else { 
     speed = this.airAccel; 
    } 
    if (direction == "right") { 
     if (this.body.velocity.x < this.maxSpeed) { 
      this.body.velocity.x += speed; 
      this.animations.play('walk', 9, true); 
      this.scale.x = 1; 
     } 

    } else if (direction == "left") { 
     if (this.body.velocity.x > -this.maxSpeed) { 
      this.body.velocity.x -= speed; 
      this.animations.play('walk', 9, true); 
      this.scale.x = -1; 
     } 
    } 
} 

や火災のイベント:

if (this.gamepad.justPressed(Phaser.Gamepad.XBOX360_X)) { 
    this.weapon.fire(null); 
} 

私はフェイザーとのnoobです私のコードに何か変わったことがある場合は教えてください。

ご協力いただきありがとうございます。

+0

ここには1行のタイスクリプトがありません。 – Azamantes

答えて

1

移動方向に合わせてweapon.fireAngleを変更してください。

if (direction == "left") 
{ 
    this.weapon.fireAngle = Phaser.ANGLE_LEFT; 
} 
else if (direction == "right") 
{ 
    this.weapon.fireAngle = Phaser.ANGLE_RIGHT; 
} 
関連する問題