我从无尽的亚军游戏开始,玩家的位置是固定的,物体正在向左移动。我使用camera.startFollowing(player)跟随播放器,但是当我跳跃时,相机会随播放器一起移动。但是摄像机Y位置必须固定。

试图通过setFollowOffset();设置偏移量,我尝试使用碰撞物理,但是Phaser找不到this.impact
我使用Phaser 3。

我已从下面的代码片段中删除了不相关的代码。

var player, ground, camera;
function create(){
   ground = this.physics.add.image(0, 568, 'ground').setScale(2, 2).setGravity(0);
   player = this.physics.add.sprite(100, 510, 'dude');
   player.setBounce(0);
   ground.setCollideWorldBounds(true);
   this.physics.add.collider(ground, player);
   camera = this.cameras.main;
   camera.startFollow(player);
   camera.setFollowOffset(-300, 225);
}

function update(){
   if (cursors.up.isDown && player.body.touching.down)
   {
      player.setVelocityY(-275);
   }
}


var config = {
   type: Phaser.AUTO,
   width: 800,
   height: 600,
   backgroundColor: '#ffff9c',
   physics:{
      default: 'arcade',
      arcade:{
         gravity: {y: 600},
         debug: false,
      }
   },
   scene:{
      preload: preload,
      create: create,
      update: update
   }
};

var game = new Phaser.Game(config);

最佳答案

解决后,我添加:

camera.setLerp(0,0);

关于javascript - Phaser 3 Arcade:将跟随播放器的摄像机的Y设置为固定,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58051157/

10-09 17:21