作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一款竞技场风格的僵尸游戏。我处于非常早期的阶段,我无法找到一种方法来按照我想要的方式轮换播放器。
我希望能够使用向左箭头和向右箭头旋转播放器并使用向上箭头向前移动。
这是我当前的玩家移动条件:
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
改变玩家的旋转,但当我向前移动时,它仍然只是让我“向上”移动屏幕而不是“向前”与我的轮换相比。
抱歉,如果我解释得不好。
最佳答案
我无法正确理解您的问题,但我认为这段代码可能对您有所帮助。您可以使用左右键旋转汽车 Sprite ,使用向上键移动前言。
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;
}
}
关于javascript - 如何在 Phaser 游戏中旋转 'player'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32070772/
我是一名优秀的程序员,十分优秀!