Режим сортировки спрайтов XNA - PullRequest
8 голосов
/ 17 марта 2010

В чем разница и последствия использования режима сортировки Sprite в качестве FrontToBack или BackToFront? Дело в том, что с FrontToBack объект, имеющий меньшее значение слоя, будет отрисовываться первым, а с BackToFron объект с меньшим значением слоя будет отрисовываться последним?

1 Ответ

7 голосов
/ 17 марта 2010

Они используют значение layerDepth, которое передается вызову рисования спрайта. Значение 0 - переднее, значение 1 - заднее, и все между этими значениями.

Все режимы сортировки в XNA меняются, когда и как отображаются спрайты. FrontToBack и BackToFront такие же, как и в режиме Deferred, что означает, что спрайты только отображаются при вызове SpriteBatch.End (). Если вы используете FrontToBack или BackToFront, то при вызове End все спрайты упорядочиваются на основе их layerDepth, где в FrontToBack сначала отображаются значения, близкие к 0, и наоборот для BackToFront. Подразумевается, что, например, в BackToFront спрайты сзади (или с layerDepths, ближайшим к 1) будут отрисовываться первыми и, следовательно, появляться под спрайтами ближе к фронту (значения ближе к 0).

Так как он выполняет сортировку за вас, эти режимы сортировки немного медленнее, чем другие режимы.

...