RABBITSV | Дата: Пятница, 06 Января 2012, 00:10 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Все, кто знаком с XNA знают, что для того чтобы отобразить в проекте какой либо контент (текстуру, модель и т.д.) его нужно сначала через Solution Explorer добавить в проект, и тогда он поместится в папочку Content и при компиляции проекта ресурсы проекта также скомпилятся в *.xnb файлы и очень успешно загрузятся. Это всё, конечно, очень удобно, если бы ни одно Но. А что если нам нужно динамически добавлять контент в программу - например загружаем в игру новый уровень, и соответственно загружаем предназначенный для него контент. Ни каждый же раз при добавлении уровня компилировать проект :))) Эту проблему я уже частично решил. Оказалось, что не обязательно добавлять контент через интерферс Visual Studio. Достаточно скопировать готовые *.xnb файлы в папку в контент, и обычным способом - content.Load<Texture2D>(TextureFilename) загрузить. Всё работает.
Тогда встает другой вопрос - как тогда, минуя компилятор, конвертировать файлы в XNB формат? ну или же вообще как добавлять их в Content Pipeline? Есть ли в XNA для этого какие то функции? Нашел статью - http://www.gotdotnet.ru/blogs/gsaf/2896/ . Кстати, тут сказано что текстуры можно загружать посредством метода FromFile класса Texture. Это плюс. А вот модели нельзя. А модели здесь компилируются хоть и автоматизированно, но опять же довольно извращенно, на основе компилятора VS.
Вопрос думаю ясен. Как же таки добавлять контент в уже скомпилированную игру?
Сообщение отредактировал RABBITSV - Пятница, 06 Января 2012, 00:12 |
|
| |
XimikS | Дата: Пятница, 13 Января 2012, 21:12 | Сообщение # 2 |
участник
Сейчас нет на сайте
| msbuild загугли
|
|
| |
RABBITSV | Дата: Суббота, 14 Января 2012, 00:53 | Сообщение # 3 |
был не раз
Сейчас нет на сайте
| В общем так, проблема была решена на другом форуме: http://www.gamedev.ru/code/forum/?id=156813&page=2
Там мы выяснили как ресурсы загружать в рантайме. Но это уже крайний случай. В XNA всё делается через ContentManager.
Моя цитата: В общем вывод такой: в XNA всё делается через ContentManager. Весь контент добавляется через ContentManager. Возможность динамической загрузки ресурсов (прим. за исключением текстур) не предусмотрена. Это, как я понял, одна из парадигм XNA. В том числе это связано с поддержкой Херовой-Коробки.
|
|
| |