Я планирую создать библиотеку 2D-игр для XNA, и одним из компонентов, который я хочу включить, является простой текстовый ящик для целей отладки. Теперь, чтобы нарисовать текст с помощью SpriteBatch, вам нужен файл .spritefont, который представляет собой файл формата xml, и, похоже, его нужно скомпилировать в отдельную папку. Я бы предпочел не копировать это вместе с dll, поэтому вот мой вопрос: могу ли я создать какой-то текстовый рендерер для XNA, который A: не требует от меня носить с собой внешние файлы с dll (если вы можете встроить шрифт спрайта в dll, тогда это работает) и B: не заставляет меня переписывать изрядное количество базового (это управляемый directx? другая часть xna?) кода, который заставляет код SpriteBatch.DrawString работать.
Отрисовка текста XNA из DLL
Ответы (2)
Не могли бы вы просто потребовать, чтобы SpriteFont был передан в вашу библиотеку, чтобы тот, кто использует библиотеку, должен был предоставить этот компонент? Казалось бы, это лучшее решение, поскольку тогда они могли использовать любой шрифт, какой хотели. Или вы можете написать компонент, который генерирует xml-файл spritefont на основе заданного имени шрифта, потому что файл не так уж и сложен. Не обращайте внимания. Я забыл, что XNA компилирует свои ресурсы.
Вы можете предварительно скомпилировать проект, а затем получить файл xnb для спрайтового шрифта. Затем добавьте файл в папку Content проекта в качестве файла содержимого. Затем его следует развернуть вместе с библиотекой. Однако вам нужно будет создать отдельный файл xnb для каждой платформы, которую вы хотите поддерживать (xbox360, windows, zune), и развернуть правильный файл.
Или почему бы вам просто не создать проект XNA Content Library?