Вот моя проблема Я использую контроль глубины, но теперь у меня есть разные спрайты, которые нуждаются в различных blendstates , как я могу изменить это, если я уже начал spritebatch.begin (...)XNA изменения blendstate от альфы до аддитивного
Я пытался изменить spritebatch.graphicsDevice.blendstate, но это не кажется, работает
Я не могу превратить черную область в прозрачность
Спасибо
По-прежнему кажется, что он не может сохранить порядок слоев между ними, используя этот код ...
Я предполагаю, что проблема может заключаться в использовании object.draw (spritebatch), а затем рисовать внутри метода.
Я думаю, Theres проблема, потому что у меня есть 2 классов каждый с методом вытягивания с входным SpriteBatch
это то, что им делать
spriteBatch.Begin (SpriteSortMode.FrontToBack, BlendState.Additive);
d.drawAttack (gameTime, spriteBatch);
spriteBatch.End();
spriteBatch.Begin (SpriteSortMode.FrontToBack, BlendState.AlphaBlend);
drawObjects (gameTime, spriteBatch);
charactersDraw (gameTime, spriteBatch); // тот же класс, что и d.drawAttack
spriteBatch.End();
они оба рисуют, но слой! МЕЖДУ и spritebatche! не кажется, никакой разницы
layerdepth отлично с персонажами работает и рисовать объекты ... только не работает с drawAttack
Я до сих пор могу показаться, чтобы сохранить порядок слоя между ними с помощью этого кода ... –
Вы используете параметр layerDepth как в моем примере? С FrontToBack значения нижнего уровня (например, 0.3f) будут отображаться перед более высокими (например, 0,9f). –
после некоторых потоков и форумов, я думаю, мне, возможно, придется предварительно рассчитать глубину для каждого объекта, а затем нарисуйте все из них (например, список) ????? my layerDepth вычисляется с помощью функции при рисовании объекта. Глубина слоя отлично работает с объектами и символами ... единственная проблема заключается в spriteBatchs (с d.drawAttack), возможно, это способ заменить черный фон изображения и нарисовать его с помощью alphablend? –