Не так, как ты это делаешь.SpriteSortMode
- это не [Flags]
, поэтому вы не должны их объединять.
Одна простая идея для получения желаемого эффекта - добавить менее значимое смещение к глубине для каждогоспрайт ты рисуешь.Таким образом, для каждого розыгрыша вы должны написать:
spriteBatch.Draw(..., 0.5f + depthOffset);
depthOffset += 0.0001f;
И поэтому нарисованная глубина может закончиться примерно так:
0.5f -> 0.5f
0.5f -> 0.5001f
0.8f -> 0.8002f
0.8f -> 0.8003f
0.6f -> 0.6004f
0.5f -> 0.5005f
И когда это будет отсортировано, вы получите стабильнуюсортировать (то есть: идентичные значения передаются в том же порядке при выводе).Просто имейте в виду, что это допустимо только в том случае, если наибольший прирост (т. Е. Конечного спрайта) меньше наименьшего различия в желаемых значениях глубины.