Phaser:角运动

时间:2016-02-21 13:24:40

标签: javascript phaser-framework

我已经开始修补Phaser.io,到目前为止,我有一个自动向前移动的精灵,可以左右移动。

我现在想要实现的是角度运动而不是直线运动。我看过"坦克"例子,看看他们如何在那里实现效果,但它似乎对我的游戏没有任何影响。我有什么明显的遗失吗?

function update() {

    player.body.setZeroVelocity();

    player.body.moveUp(300)

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

}

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

1 个答案:

答案 0 :(得分:0)

在函数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>