Phaser применяет физику к дочернему классу Phaser.Sprite (ES6)

Я пытаюсь применить Gravity.Y Arcade Physics к классу персонажей (Phaser.Sprite). Но gravity.y не повлиял на Sprite и остался на своем месте.

Есть ли какой-то конкретный порядок применения физики? ПРИМЕЧАНИЕ: я также пытался включить / применить физику до и после game.add.existing (char)

1) Ошибка

Пример расширенного класса Phaser.Sprite Character,

который применил физику 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
}

person devric    schedule 24.07.2017    source источник


Ответы (1)


Моя вина

Код действительно работает, это произошло из-за другой настройки «fixedToCamera = true»

person devric    schedule 24.07.2017