首页 > 解决方案 > Phaser js:如何将播放器对象添加到我的场景中?

问题描述

我是 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');

    }
}

标签: javascriptoopphaser-framework

解决方案


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

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

推荐阅读