Добавить спрайт в функцию в Phaser 3 - PullRequest
1 голос
/ 26 сентября 2019

Я добавляю спрайт в свою игру следующим образом:

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

Теперь я хотел бы добавить его изнутри функции, подобной этой:

spawn(this.enemy);

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

Это не 't, я получаю следующую ошибку:

TypeError: this.physics is undefined

Что я должен написать вместо this.physics?

1 Ответ

0 голосов
/ 27 сентября 2019

Вместо этого следует использовать функцию стрелки , например, так:

Сначала, в функции preload(), добавьтеsprite:

this.load.spritesheet('enemy', 'assets/enemy.png', { frameWidth: 32, frameHeight: 48 });

Во-вторых, в функции create(), добавьте следующий код:

spawn = (enemyName) => {
    enemyPlayer = this.physics.add.sprite(400, 450, enemyName);
}

spawn('enemy');

Как видитемы передаем имя спрайта в качестве параметра функции .Теперь вы можете повторно использовать эту функцию для "появления" других спрайтов .Например, spawn('stars') ... дайте мне знать, если это поможет!Обязательно примите ответ, если он есть!

Удачного кодирования!

...