移相器:Angular 运动

Phaser: Angular Movement

我已经开始在 Phaser.io 中进行修补,到目前为止我已经有了一个自动向前移动的精灵,并且可以沿直线左右移动。

我现在想要实现的是angular运动,而不是直线运动。我查看了 "Tanks" 示例并看到了他们如何实现那里的效果,但它似乎在我的游戏中没有任何效果。有什么明显的我想念的吗?

function update() {

    player.body.setZeroVelocity();

    player.body.moveUp(300)

    if (cursors.left.isDown)
    {
        player.angle -= 4;
    }
    else if (cursors.right.isDown)
    {
        player.angle += 4;
    }

}

代码运行没有错误,精灵自动向前移动。

在函数 moveUp 中,您可以使用 velocityFromAngle

像这样:

var game = new Phaser.Game(500, 800, Phaser.CANVAS, 'game', { preload: preload, create: create, update: update });


var player;

function preload() {
    game.load.image('player', 'notfonud');
}

function create() {
    game.physics.startSystem(Phaser.Physics.ARCADE);
    player = this.game.add.sprite(game.world.centerX,500, 'player');
    player.anchor.setTo(0.5,0.5);

    game.physics.arcade.enable(player);
    player.body.allowRotation = true; 
    player.angle = -90;
}

function update() {

    if(game.input.keyboard.isDown(Phaser.Keyboard.LEFT)){
        player.angle -= 5;
    }
    else if(game.input.keyboard.isDown(Phaser.Keyboard.RIGHT)){
        player.angle += 5;
    }
  
    game.physics.arcade.velocityFromAngle(player.angle, 50, player.body.velocity)
  
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/phaser/2.4.4/phaser.min.js"></script>
<div id="game"></div>