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
没有物理定义。