在Phaser 3的功能中添加精灵

问题描述 投票:1回答:1

我正在像这样在游戏中添加一个精灵:

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

sprite 2d-games phaser
1个回答
0
投票

您应该改为使用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');
如您所见,我们正在将

sprite的名称

作为function的参数传递。现在,您可以将该函数重用到“ spawn”其他sprites。例如,spawn('stars') ...让我知道是否有帮助!请确保接受答案!

快乐编码!

© www.soinside.com 2019 - 2024. All rights reserved.