[英]How do you rotate the 'player' in a Phaser game?
我正在开发一个竞技场风格的僵尸游戏。 我还处于初期阶段,所以找不到找到想要的方式旋转播放器的方法。
我希望能够使用左箭头和右箭头来旋转播放器,并使用向上箭头来向前移动。
这是我当前的玩家移动条件:
if(this.cursor.left.isDown){
this.player.angle += -0.5;
}
else if(this.cursor.right.isDown){
this.player.angle += 0.5;
}
else if(this.cursor.up.isDown){
this.player.body.velocity.y = -75;
}
else{
this.player.body.velocity.x = 0;
this.player.body.velocity.y = 0;
}
这种方法的问题在于,尽管我可以使用.angle
更改播放器的旋转.angle
,但是当我向前移动时,与旋转.angle
,它仍然只是将屏幕向上方移动而不是向前移动。
对不起,如果我解释得不好。
我无法正确理解您的问题,但我认为这段代码可能会对您有所帮助。您可以使用向左和向右键旋转汽车精灵,使用向上键移动前言。
function preload(){
game.load.image('car', 'assets/sprites/car90.png');
}
var car ;
function create(){
game.physics.startSystem(Phaser.Physics.ARCADE);
car = game.add.sprite(game.world.centerX,game.world.centerY,'car');
car.anchor.setTo(0.5,0.5);
game.physics.arcade.enable(game.global.car);
car.body.allowRotation = true;
}
function update(){
if(game.input.keyboard.isDown(Phaser.Keyboard.LEFT)){
game.global.car.body.angularVelocity = -200;
}
else if(game.input.keyboard.isDown(Phaser.Keyboard.RIGHT)){
game.global.car.body.angularVelocity = 200;
}
else if(game.input.keyboard.isDown(Phaser.Keyboard.UP)){
game.global.car.body.velocity.copyFrom(game.physics.arcade.velocityFromAngle(game.global.car.angle, 200));
}
else{
game.global.car.body.angularVelocity = 0;
game.global.car.body.velocity.x = 0;
game.global.car.body.velocity.y = 0;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.