Когда использовать несколько пакетов спрайта в XNA? [закрытый]

11
задан Strom 3 July 2019 в 21:38
поделиться

3 ответа

В очень редких случаях необходимо использовать несколько пакетов SpriteBatches. Один из примеров, который я часто вижу, - это ситуация, в которой вы хотите применить разные состояния постобработки / рендеринга к разным наборам спрайтов, что требует отдельного пакета SpriteBatch для каждого набора.

Обычно считается хорошей практикой использовать только один пакет, если это вообще возможно, поскольку рисование как можно большего количества вещей в одном пакете намного эффективнее, чем распределение работы по нескольким пакетам. Кроме того, поскольку вы можете управлять порядком сортировки только в пределах одного пакета SpriteBatch, это может затруднить (или сделать невозможным) контроль глубины между спрайтами из разных пакетов.

Короче говоря: есть мыслимые ситуации, в которых вы можете захотеть сделать это , но это'

7
ответ дан 3 December 2019 в 10:26
поделиться

В случаях с DrawableGameComponents может быть проще иметь пакет SpriteBatch для каждого компонента DrawableGameComponent вместо того, чтобы пытаться передать его.

0
ответ дан 3 December 2019 в 10:26
поделиться

Здесь - хороший пример того, когда использовать более 1 SpriteBatch (блог Шона - как обычно - окончательный источник).

SpriteBatch на самом деле не работает любой рисунок, пока вы не вызовете метод End. Это означает, что вы можете начать несколько перекрывающихся пакетов с различными настройками, рисовать спрайты в любом порядке, используя любую комбинацию экземпляров пакета, и контролировать, в каком порядке все содержимое каждого пакета будет отрисовано, путем упорядочивания ваших вызовов End.

Обратите внимание, что этот пример посвящен оптимизации производительности для сцены с альфа-смешиванием и спрайтами, отсортированными по глубине. Когда (или, скорее, , если ) вы столкнетесь с проблемами производительности, можно кое-что получить, используя несколько пакетов SpriteBatches. А пока лучше не усложнять.

2
ответ дан 3 December 2019 в 10:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: