Как добавить физику в Phaser 3 спрайт? - PullRequest
1 голос
/ 22 марта 2019

Я пытаюсь реализовать документацию Phaser 3 для физических спрайтов в проекте машинописного текста, но это кажется менее простым, чем ожидалось:

НЕ РАБОТАЕТ

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);
    }
}

Но при создании new BMO() спрайт не имеет физики. Сам физический движок работает, потому что я могу передать изображение, и оно работает:

РАБОТА

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);
  }
}

FIX

Так что, возможно, спрайт еще нужно добавить в физический движок вручную (даже если это физический спрайт), но невозможно передать весь спрайт в качестве аргумента:

 export class BMO extends Phaser.Physics.Arcade.Sprite {
     create(){
        this.scene.physics.add.sprite(this)
     }
 }

Как создать экземпляр Phaser.Physics.Arcade.Sprite?

1 Ответ

0 голосов
/ 19 апреля 2019

Вы должны включить раздел физики в конфигурацию Phaser.Game.

...