Пятница, 08 Ноября 2024, 21:06

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
XNA: как добавить ресурсы в Content Pipeline из программы
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.

Вопрос думаю ясен. Как же таки добавлять контент в уже скомпилированную игру? smile


Сообщение отредактировал 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. В том числе это связано с поддержкой Херовой-Коробки.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг