Проблема в spriteBatch.Begin (SpriteBlendMode.AlphaBlend) в игре "ping pong"

Да, SpriteBatch получил новые перегрузки в версии 4.0. Я ща попробую кратко объяснить что поменялось:

Поменялись параметры начала отрисовки спрайтов, чаще всего я пользуюсь такой перегрузкой:

C#Выделить код

| | |
| --- | --- |
| 1 | SpriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend); |

1й параметр способ сортировки спрайтов, 2й - способ смешивания цвета.

SpriteSortMode.Deferred

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

SpriteSortMode.Immediate

- Begin применит новые настройки графического устройства, спрайты будут отрисовываться при каждом вызове Draw. В режиме Immediate может функционировать только одинактивный экземпляр SpriteBatch, в противном случае возникнут конфликтующие настройки устройств.

SpriteSortMode.Texture

- Как и режим Deferred за исключением того, что спрайты упорядочены по текстурам до отрисовки. Это может повысить производительность при отрисовке ненакладываемых спрайтов общеиспользуемой глубины.

SpriteSortMode.BackToFront

- То же, что режим Deferred, однако спрайты упорядочиваются по глубине порядка с заднего на передний план до отрисовки. Эта процедура рекомендована к использованию при отрисовки прозрачных спрайтов различной глубины.

SpriteSortMode.FrontToBack

- То же что и BackToFront за исключением что эта процеура рекомендована к использованию при отрисовки непрозрачных спрайтов различной глубины.

Разные параметры подходят для разных целей.