为精灵及其 body 分配属性

Assigning properties to a sprite and to its body

比方说,sprite.setVelocity(100,100)sprite.body.setVelocity(100,100) 在行为上有什么区别吗? (假设精灵已添加到 this.physics。)

额外问题:this 在全局 Phaser 范围内究竟引用了什么?如果我在全局范围内将某些东西分配给 this.physics,如果我在 ES5 Phaser class 中分配它,就像一个场景,有什么不同吗?

var config = {
    type: Phaser.AUTO,
    parent: 'phaser-example',
    width: 800,
    height: 600,    loader: {
      baseURL: 'https://raw.githubusercontent.com/nazimboudeffa/assets/master/',
      crossOrigin: 'anonymous'
    },
    scene: {
        preload: preload,
        create: create,
        update: update
    },
    physics: {
        default: 'arcade'
    }
};

var game = new Phaser.Game(config);
var cursors, sprite, player;

function preload ()
{
    this.load.image('alien', 'sprites/phaser-alien.png');
    this.load.image('alien2', 'sprites/alien2.png');
}

function create ()
{
    player = this.physics.add.sprite(50, 50, 'alien');
    player.setCollideWorldBounds(true);
    
    sprite = this.add.sprite(150, 50, 'alien2');
    
    cursors = this.input.keyboard.createCursorKeys();
    
}

function update ()
{
  if (cursors.left.isDown)
  {
      //player.setVelocityX(-160);
      sprite.body.setVelocityX(-160);
  }
  else if (cursors.right.isDown)
  {
      player.setVelocityX(160);
      //sprite.setVelocityX(160);
  }
  else if (cursors.down.isDown)
  {
      player.setVelocityY(160);
      //sprite.setVelocityY(160);
  }
  else if (cursors.up.isDown)
  {
      player.setVelocityY(-160);
      //sprite.setVelocityY(-160);
  }
}
<script src="//cdn.jsdelivr.net/npm/phaser@3.18.1/dist/phaser.min.js"></script>