Поместите графику поверх динамически добавленного спрайта в Phaser

Я добавляю спрайты динамически, используя синхронизированное событие. Я не могу найти способ перенести новую графику (залитый прямоугольник) поверх сгенерированных спрайтов.

Спрайты всегда на высоте

create()
{
  var graphics = game.add.graphics(0, 0);
  graphics.beginFill(0xFFFF0B);
  graphics.drawRect(0, 0, windowWidth, 70);
  graphics.endFill();
  timer = game.time.events.loop(1500, addSprite, this);
}

addSprite()
{  
  sprite= game.add.sprite(20, 30, 'sprite');
}

Любая помощь??

1 ответ

Графические объекты в Phaser являются просто стандартными объектами списка отображения, такими как спрайты. Они добавляются в мир по умолчанию (как и спрайты), и вы можете перемещать их, используя команды уровня Phaser.Group, такие как moveUp, moveDown, takeToTop и т. Д. Полный список вы найдете здесь: http://docs.phaser.io/Phaser.Group.html

Поэтому, добавив Sprite в приведенный выше код, перенесите объект Graphics на вершину группы:

game.world.bringToTop(graphics);

Примечание: на данный момент у вас есть локальная переменная graphicsтак что вам нужно сделать это видимым для остальных ваших функций, чтобы это работало.

Другие вопросы по тегам