移相器: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>
我已经开始在 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>