title: How add physics to Phaser 3 sprite?
body: <p>I am trying to implement the <a href="https://photonstorm.github.io/phaser3-docs/Phaser.Physics.Arcade.Sprite.html" rel="nofollow noreferrer">Phaser 3 documentation for physics sprites</a> in a typescript project, but this seems less straightforward than expected:</p>
  
  <p><strong>NOT WORKING</strong></p>
  
  <pre><code>export class BMO extends Phaser.Physics.Arcade.Sprite {
  
      constructor(scene) {
          super(scene, 100,150, "bmo")
          this.scene.add.existing(this)
      }
  
      create(){
          this.setVelocity(100, 200);
          this.setBounce(1, 1);
          this.setCollideWorldBounds(true);
      }
  }
  </code></pre>
  
  <p>But when creating a <code>new BMO()</code> the sprite has no physics. 
  The physics engine itself is working because I can pass an image and it works:</p>
  
  <p><strong>WORKING</strong></p>
  
  <pre><code>export class GameScene extends Phaser.Scene {
  
    create(){
      let logo = this.physics.add.image(400, 100, 'bmosmall')
      logo.setVelocity(100, 200);
      logo.setBounce(1, 1);
      logo.setCollideWorldBounds(true);
    }
  }
  </code></pre>
  
  <p><strong>FIX?</strong></p>
  
  <p>So perhaps the sprite still needs to be added to the physics engine manually (even though it's a physics sprite), but it's not possible to pass the whole sprite as an argument:</p>
  
  <pre><code> export class BMO extends Phaser.Physics.Arcade.Sprite {
       create(){
          this.scene.physics.add.sprite(this)
       }
   }
  </code></pre>
  
  <p>How do I create a Phaser.Physics.Arcade.Sprite instance?</p>