我已经开始修补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;
}
}
代码运行时没有错误,精灵自动向前移动。
答案 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>