我正在像这样在游戏中添加一个精灵:
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
我必须写些什么而不是this.physics
?
您应该改为使用arrow function,如下所示:
首先,在function preload()
中,添加精灵:
this.load.spritesheet('enemy', 'assets/enemy.png', { frameWidth: 32, frameHeight: 48 });
其次,在[[函数create()
,中,添加以下代码:
spawn = (enemyName) => {
enemyPlayer = this.physics.add.sprite(400, 450, enemyName);
}
spawn('enemy');
如您所见,我们正在将作为function的参数传递。现在,您可以将该函数重用到“ spawn”其他sprites。例如,sprite的名称
spawn('stars')
...让我知道是否有帮助!请确保接受答案!快乐编码!