开发者问题收集

Phaser js:如何将玩家对象添加到我的场景?

2021-05-27
1702

我是 Phaser js 的新手。我正在尝试使用 OOP 制作游戏。我想做的第一件事是将我的角色加载到我的场景中,但什么也没发生。没有抛出任何异常。 我正在关注这个:

Phaser 3 为玩家创建类

有人能告诉我我在这里做错了什么吗?

这是代码

var player
class MainLevelScene extends Phaser.Scene
{
    constructor() {
        super('MainLevelScene');
    }
    preload()
    {
        this.load.image('sky','assets/sky.png');
    }
    create()
    {
        this.add.image(400,200,'sky');
        player = this.physics.add.existing(new Player(this, 100, 450));
    }
    update()
    {

    }

}

class Player extends Phaser.Physics.Arcade.Sprite
{
    constructor(MainLevelScene, x, y) {
        super(MainLevelScene, x, y, 'assets/dude.png');

    }
}
1个回答

您首先需要在预加载方法中加载资产(就像您对“天空”所做的那样),然后使用您选择的键创建精灵。

var player
class MainLevelScene extends Phaser.Scene
{
    constructor() {
        super('MainLevelScene');
    }
    preload()
    {
        this.load.image('sky','assets/sky.png');
        this.load.image('dude','assets/dude.png');
    }
    create()
    {
        this.add.image(400,200,'sky');
        player = this.physics.add.existing(new Player(this, 100, 450));
    }
    update()
    {

    }

}

class Player extends Phaser.Physics.Arcade.Sprite
{
    constructor(scene, x, y) {
        super(scene, x, y, 'dude');
    }
}
Davide Pedron
2021-06-02