Sprite 在相位器3的功能中添加精灵

Sprite 在相位器3的功能中添加精灵,sprite,phaser-framework,2d-games,Sprite,Phaser Framework,2d Games,我正在向游戏中添加一个精灵,如下所示: enemy = this.physics.add.sprite(280, 32, 'enemy'); spawn(this.enemy); function spawn(enemy) { enemy = this.physics.add.sprite(280, 32, 'enemy'); } 现在我想从函数内部添加它,如下所示: enemy = this.physics.add.sprite(280, 32, 'enemy'); spawn

我正在向游戏中添加一个精灵,如下所示:

enemy = this.physics.add.sprite(280, 32, 'enemy');
spawn(this.enemy);

function spawn(enemy) {
    enemy = this.physics.add.sprite(280, 32, 'enemy');
}
现在我想从函数内部添加它,如下所示:

enemy = this.physics.add.sprite(280, 32, 'enemy');
spawn(this.enemy);

function spawn(enemy) {
    enemy = this.physics.add.sprite(280, 32, 'enemy');
}
它不工作,我得到以下错误:

TypeError: this.physics is undefined

我必须写什么来代替这个。物理?

你应该用这样的

首先,在函数
preload()
中,添加精灵:

this.load.spritesheet('enemy', 'assets/enemy.png', { frameWidth: 32, frameHeight: 48 });
其次,在函数
create()
中添加以下代码:


如您所见,我们将精灵的名称作为函数的参数传递。现在,您可以重用此函数来“生成”其他精灵。例如,
spawn('stars')

没有解释为什么“this.physics”是未定义的,因为
this
在函数中不再指同一事物;范围发生变化,因此现在函数的
this
没有
物理定义。