玩家悬停在平台精灵上方

Player hovering above platform sprites

我一直在关注 Phaser 3 的介绍 http://phaser.io/tutorials/making-your-first-phaser-3-game 并在我制作的平台上方找到了我的角色 'hovering'。

如果可以回答以下任一问题,则可以忽略此 post 的其余部分:

是否有填充 属性 给 sprite 并且可以将其删除吗?

可以为 sprite 指定碰撞遮罩尺寸吗?

这是我初始化播放器和平台的代码以及碰撞代码。

(我意识到在 'this' 上定义玩家可能是一种奇怪的做事方式)

      clouds = this.physics.add.staticGroup();
      platforms = this.physics.add.staticGroup();

      platforms.create(0, 400, 'platform').setScale(0.5).refreshBody();
      clouds.create(200, 410, 'plc-cloud').setScale(0.5).refreshBody();
      //player

      this.player = this.physics.add.sprite(0,300,'player').setScale(0.5);
      this.player.speed = 5.5;
      this.player.isMoving = false;
      this.player.isCrouching = false;
      this.player.setCollideWorldBounds(true);
      this.player.body.setGravityY(400);
      this.physics.add.collider(this.player, platforms);
      this.physics.add.collider(this.player, clouds);

图片尺寸: 播放器:100x100像素 云:150x150 平台:400x32

这是结果 platform hover

你的 sprite 不应该被填充 属性 除非你在加载 sprite 时指定的边距或间距不是 0。

您可以使用 setSize(width, height) 设置精灵的碰撞尺寸,请参阅 Phaser 文档 here

如果您在物理配置中打开调试,它应该在平台和您的精灵周围绘制方框,以便您确定合适的尺寸。类似于:

physics: { default: 'arcade', arcade: { debug: true } }