Нужна помощь с контентом XNA (2Q) - PullRequest
2 голосов
/ 11 декабря 2010

Я спрашиваю здесь о XNA, а не на его официальных форумах, поскольку людям из моей страны не разрешено входить на новый веб-сайт XNA.

Ну вот мои вопросы:

  1. Я хочу использовать несколько 2D-изображений, которые я создаю в Paint Shop Pro / Photo Shop / Paint, но по какой-то причине мне нужно использовать безопасный веб-поддон и такие настройки для его отображения в настоящее время (я использую прозрачность) , Может ли кто-нибудь1 объяснить мне, как я могу использовать прозрачность и другие настройки (при создании и сохранении изображения), чтобы XNA (4.0) могла правильно его отображать? Кстати, может быть, мне просто нужна цифра 1, чтобы объяснить мне, как настроить параметры GraphicsDevice для работы со слоем / каналом прозрачности.

  2. Я действительно стараюсь делать то, что должен (по мнению Microsoft), и поэтому я использую конвейер контента для ALL загрузки своего контента (включая файлы данных инициации классов). Я использую .txt файлы для хранения своих данных инициации класса и редактирую их с помощью простого старого доброго блокнота (++: P). Теперь проблема в том, что все, что мне удалось сделать, это загрузить файл .txt в виде очень длинной строки вместо создания нового экземпляра моего класса GameDataFile. из-за этого я был вынужден сделать это в 2 этапа:

Шаг 1:

string tempStrData = content.load<string>("data/filename").Replace("\r", "");

/* Loads a string from a file (the string is the whole file!) */

Шаг 2:

GameDataFile gameDataFile = new GameDataFile(tempStrData.Split('\n'));
/* Sends the string to my GameDataFile class constructor which knows how to handle that string and break it to it's data elements (ints, strings vectors, etc...) */

Я хочу обновить его до следующей формы:

GameDataFile gameDataFile = content.load<GameDataFile>("data/fileName");

Я думаю, что я должен сделать это, используя собственный процессор конвейера контента, любые мнения, если я прав и как мне этого добиться?

P.S. Пожалуйста, не заставляйте меня использовать открытые члены, так как я всегда устанавливаю это как private, и я ненавижу и строго запрещаю себе использовать методы C # -ONLY-get - & - set.

Заранее спасибо, Тал А.

1 Ответ

1 голос
/ 11 декабря 2010

Для вашего первого вопроса, установите blendstate на AlphaBlend, когда вы начинаете SpriteBatch:

spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend, null, null, null);

Я сохраняю свои изображения в формате PNG в PhotoShop, который обеспечивает прозрачность.

Редактировать: Если вы неВы имеете в виду 3D текстуры.Если это так, мне придется пересмотреть мой ответ

Редактировать: Что касается вопроса 2, этот пример в App Hub показывает, как это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...