Я пытаюсь реализовать документацию 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?