Phaser 将物理学应用于 Phaser.Sprite 的子 class (ES6)

Phaser applying physics to child class of Phaser.Sprite (ES6)

我正在尝试将 Gravity.Y 街机物理应用于角色 Class(Phaser.Sprite)。但是 gravity.y 并没有影响到 Sprite 并保持在原位。

应用物理有什么特定的顺序吗? 注意:在 game.add.existing(char)

之前和之后,我也尝试过 enable/apply 物理

1) 失败

扩展 Phaser.Sprite 字符的示例 class,

应用了 ARCADE 物理原理,但无法运行:

class Char extend Phaser.Sprite {
     constructor(game,x,y){
        super(game,x,y,'dude')
        game.add.existing(this)
        game.physics.arcade.enable(this)
        this.body.gravity.y = 300
     }
}

// calling it in create()
create(game){
   game.physics.startSystem(Phaser.Physics.ARCADE)

   var x = new Char(game,0,0)

}

2) 工作

然后尝试了正常的 Sprite 创建和 gravity.y 工作...

create(game){
   game.physics.startSystem(Phaser.Physics.ARCADE)

   var x = game.add.sprite(0,0,'dude')
   game.physics.arcade.enable(x)
   x.body.gravity.y=300
}

我不好

代码确实有效, 这是由于另一个设置 "fixedToCamera = true"