Форум программистов, компьютерный форум, киберфорум
XNA/MonoGame
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.98/56: Рейтинг темы: голосов - 56, средняя оценка - 4.98
 Аватар для demonmov
34 / 11 / 0
Регистрация: 22.09.2010
Сообщений: 357

Проблемы, связанные с ContentManager и загрузкой/выгрузкой контента

31.12.2010, 13:40. Показов 12838. Ответов 106
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Краткая сводка:

1) Рабочий пример загрузки текстуры
2) RootDirectory нельзя изменить после присвоения. Однако это не мешает инициализировать её абсолютным путём, например: "C:\\"
3) Пример загрузки в случае RootDirectory = "Content" (расширения при загрузке не указываются):
C#
1
texture = Content.Load<Texture2D>(@"folder1\\folder2\\texture");
4) Пример загрузки текстуры, не используя ContentManager:
C#
1
texture = Texture2D.FromStream(GraphicsDevice, File.OpenRead("путь" + ".png"));
5)При выгрузке ассетов(не всех сразу вызовом Unload()), занимаемая ими память не освобождается даже при обнулении ссылки на ассеты и вызова сборщика мусора. Память высвобождается путём обнуления ссылок, которые указывают на этот экземпляр контент менеджера. Есть несколько способов избежать этого:
__А) создавать ContentManager на каждый ассет.
__Б) создать свой класс. наследуя от ContentManager

6) Способ загрузки эффектов, текстур, моделей и т.д. в реальном времени (динамическая компиляция).

7) Чтобы игра не зависала при длительных загрузках, загружать нужно в отдельном потоке, используя классы Thread/Task и т.д.

________________________________________ ___________________

Помогите, не пойму в чем проблема, в участке кода
spriteTexture = content.Load<Texture2D>(@"all\textures\q werty1");
выскакивает исключение Error loading "all\textures\qwerty1". File not found.
Хотя в проект добавлен каталог all и в нем textures и внутри файл qwerty1.jpg, и через проект изображение открывается. Я даже задавал полный путь - то же самое пишет.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.12.2010, 13:40
Ответы с готовыми решениями:

Проблемы с выгрузкой файлов
Здравствуйте при выгрузке файлов, при совпадении имен как я понимаю почему то одному файлу присвается имя что в роде ATTH89S2. Выгружаю...

Проблемы с выгрузкой информации в Excel
Есть вьюха первое поле - номер во вьюхе остальные поля с данными текстовыми и одно поле многострочное. Выгружаю все это щастье в...

Настройки Биос, связанные с загрузкой?
Доброго времени суток! Постигла меня следующая проблема: в windows отказали клавиатура и мышь (причём произошло это после сканирования...

106
24 / 24 / 1
Регистрация: 16.05.2012
Сообщений: 285
04.05.2013, 15:14
Студворк — интернет-сервис помощи студентам
попробуй вообще его не создавать, при загрузке обращайся к Content.Load<T>
0
51 / 38 / 5
Регистрация: 14.01.2012
Сообщений: 127
04.05.2013, 22:08
Уже часто запощивую ссылку на данный пример, может его вообще прикрепить? как юзать xna с винформс без Game , с контент манагером и всем что там есть.1 часть
2 часть как раз с контентом вообще гуглится по запросу xna winforms sample (переезжает xna у майков то к иксбоксу то к виндафону)
А походу ты так и делал вроде(хотя не факт), и решение подсказали и оно должно работать если Services нормальные
1
 Аватар для ImAlexSmith
325 / 114 / 7
Регистрация: 01.05.2011
Сообщений: 283
Записей в блоге: 3
05.05.2013, 23:08
1) Попробуй поставить точку остановки на content.Load<> и посмотреть значение content.RootDirectory.
2) Для скомпилиных файлов xnb не нужно указывать расширение jpg, png и т.д. Они все уже во внутреннем представлении хны и она ищет только их.
3) а, так эта... У тебя вообще нет внутреннего представления, если я все правильно понял? Контентлоадеры работают только с бинарным представлением файлов контента (это *.xnb файлы). Именно в самих файлах описывается, какой тип данных хранится в нем. Попробуй загрузить текстуру из xnb (без указания формата, конечно же).
0
to
19 / 19 / 2
Регистрация: 28.10.2010
Сообщений: 296
06.05.2013, 11:58
Цитата Сообщение от ImAlexSmith Посмотреть сообщение
1) Попробуй поставить точку остановки на content.Load<> и посмотреть значение content.RootDirectory.
2) Для скомпилиных файлов xnb не нужно указывать расширение jpg, png и т.д. Они все уже во внутреннем представлении хны и она ищет только их.
3) а, так эта... У тебя вообще нет внутреннего представления, если я все правильно понял? Контентлоадеры работают только с бинарным представлением файлов контента (это *.xnb файлы). Именно в самих файлах описывается, какой тип данных хранится в нем. Попробуй загрузить текстуру из xnb (без указания формата, конечно же).
1) точку останова поставил RootDirectory= "Content"
2) файл добавил в контент, и при загрузке указываю только имя без расширения.
Как быть?

Добавлено через 56 секунд
Цитата Сообщение от nrv Посмотреть сообщение
Уже часто запощивую ссылку на данный пример, может его вообще прикрепить? как юзать xna с винформс без Game , с контент манагером и всем что там есть.1 часть
2 часть как раз с контентом вообще гуглится по запросу xna winforms sample (переезжает xna у майков то к иксбоксу то к виндафону)
А походу ты так и делал вроде(хотя не факт), и решение подсказали и оно должно работать если Services нормальные
за пример спасибо, буду разбираться. Если бы там еще описание было, вообще бы круто было.
0
 Аватар для ImAlexSmith
325 / 114 / 7
Регистрация: 01.05.2011
Сообщений: 283
Записей в блоге: 3
06.05.2013, 14:38
Цитата Сообщение от to Посмотреть сообщение
2) файл добавил в контент, и при загрузке указываю только имя без расширения.
ну в нулевом посте у тебя с расширением, я вот и подумал... мало ли, всяко бывает)
А xnb то есть, они нормально компилируются из того Empty Content Project?

Но вообще прогляди мануалы, что дал nrv - там про xna на winforms все показано.
1
to
19 / 19 / 2
Регистрация: 28.10.2010
Сообщений: 296
08.05.2013, 18:36
Цитата Сообщение от ImAlexSmith Посмотреть сообщение
ну в нулевом посте у тебя с расширением, я вот и подумал... мало ли, всяко бывает)
А xnb то есть, они нормально компилируются из того Empty Content Project?

Но вообще прогляди мануалы, что дал nrv - там про xna на winforms все показано.
да компилируется все отлично, а вот ничего не могу загрузить с него
0
 Аватар для ImAlexSmith
325 / 114 / 7
Регистрация: 01.05.2011
Сообщений: 283
Записей в блоге: 3
08.05.2013, 19:06
скинь проект, если это не секрет, мы общими усилиями посмотрим)
что с примерами, пробовал? еще попробуй для менеджера путь в тупую полный задать. К папке с контентом, когда new создаешь.
0
to
19 / 19 / 2
Регистрация: 28.10.2010
Сообщений: 296
08.05.2013, 19:17
Цитата Сообщение от ImAlexSmith Посмотреть сообщение
скинь проект, если это не секрет, мы общими усилиями посмотрим)
что с примерами, пробовал? еще попробуй для менеджера путь в тупую полный задать. К папке с контентом, когда new создаешь.
да какой там секрет) там только наброски, почти ничего нет.
прикрепил) вся суть рисовать в окне WinForm
Вложения
Тип файла: rar xnaPanel.rar (223.9 Кб, 4 просмотров)
0
to
19 / 19 / 2
Регистрация: 28.10.2010
Сообщений: 296
08.05.2013, 19:21
только что попробовал передать полный путь, эффект тот же.
0
51 / 38 / 5
Регистрация: 14.01.2012
Сообщений: 127
08.05.2013, 19:38
to, во 1-х класс Game ты унаследовал, так что надо иметь ввиду что (насколько я знаю) никому не удалось таким образом отрендерить в панель, несмотря на то что в PresentationParameters вроде есть handle, т.к. класс game создает свой поток в котором происходит весь игровой цикл, а winforms нельзя получить доступ к контролу из другого потока
0
to
19 / 19 / 2
Регистрация: 28.10.2010
Сообщений: 296
08.05.2013, 19:56
Цитата Сообщение от nrv Посмотреть сообщение
to, во 1-х класс Game ты унаследовал, так что надо иметь ввиду что (насколько я знаю) никому не удалось таким образом отрендерить в панель, несмотря на то что в PresentationParameters вроде есть handle, т.к. класс game создает свой поток в котором происходит весь игровой цикл, а winforms нельзя получить доступ к контролу из другого потока
доступ к контролу получить можно, и выводить графику в него тоже можно, я уже рисовал графики функций в такой же самой панели.
0
51 / 38 / 5
Регистрация: 14.01.2012
Сообщений: 127
08.05.2013, 20:34
to, может скинешь проект где ты уже что-то рисовал - в этом ничего не рисуется.
Мне просто интересно как. Получается Game.Run не вызываем но создаем game(что дает GraphicsDevice). Я пробовал вызывать простенький метод с GraphicsDevice.Clear но не похоже на то что это рисуется.
0
to
19 / 19 / 2
Регистрация: 28.10.2010
Сообщений: 296
08.05.2013, 20:47
Цитата Сообщение от nrv Посмотреть сообщение
to, может скинешь проект где ты уже что-то рисовал - в этом ничего не рисуется.
Мне просто интересно как. Получается Game.Run не вызываем но создаем game(что дает GraphicsDevice). Я пробовал вызывать простенький метод с GraphicsDevice.Clear но не похоже на то что это рисуется.
Этот еще ничего не может рисовать) а тот сейчас скину.
0
to
19 / 19 / 2
Регистрация: 28.10.2010
Сообщений: 296
08.05.2013, 20:58
вот)
Вложения
Тип файла: rar XnaPanel.rar (683.6 Кб, 7 просмотров)
0
to
19 / 19 / 2
Регистрация: 28.10.2010
Сообщений: 296
08.05.2013, 22:29
Цитата Сообщение от nrv Посмотреть сообщение
to, может скинешь проект где ты уже что-то рисовал - в этом ничего не рисуется.
Мне просто интересно как. Получается Game.Run не вызываем но создаем game(что дает GraphicsDevice). Я пробовал вызывать простенький метод с GraphicsDevice.Clear но не похоже на то что это рисуется.
ну что рисует?
0
444 / 348 / 32
Регистрация: 16.10.2010
Сообщений: 842
Записей в блоге: 7
20.02.2014, 00:06
пример загрузки:
C#
1
2
3
4
protected override void LoadContent()
{
     spriteBatch = new SpriteBatch(GraphicsDevice);
     texture2d = Content.Load<Texture2D>("S");
0
0 / 0 / 0
Регистрация: 26.01.2014
Сообщений: 6
03.03.2014, 21:42
Как реализовать загрузку контента так, чтобы в это время игра не зависала.

Например, у меня есть главное меню в игре и само основное действие игры. При переходе из меню в игру хочется сделать анимированый загрузчик.
Как известно, даже если реализовать анимацию во время загрузки, то она проигрываться не будет, так как произойдет остановка отрисовки и апдейта игры.
0
444 / 348 / 32
Регистрация: 16.10.2010
Сообщений: 842
Записей в блоге: 7
04.03.2014, 09:00
http://msdn.microsoft.com/ru-r... .110).aspx То есть загружать в другом потоке, например:
C#
1
new Thread(()=>{Content.Load...}).Start();
0
0 / 0 / 0
Регистрация: 26.01.2014
Сообщений: 6
04.03.2014, 21:34
Большое спасибо. Игру пишу на Monogame для Windows 8, а там нет такого класса.
Воспользовался немножко другим:
C#
1
2
3
4
5
6
7
8
Task<bool> task = new Task<bool>(Load);
task.Start();
...
bool Load ()
{
     //загрузка контента
    return true;
}
0
0 / 0 / 0
Регистрация: 26.01.2014
Сообщений: 6
04.03.2014, 22:34
Допустим в игре загружается большое количество текстур. Можно ли выгрузить одну текстуру? Или же это невозможно и единственный выход - это выгрузка всего контента?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.03.2014, 22:34

Отслеживание изменений URL на сайте с динамической загрузкой контента
Подскажите пожалуйста, как отслеживать изменения URL при динамической загрузке контента, реализованной с помощью AJAX.

Подскажите совет как разобраться с загрузкой разного контента
Имеется пункты меню &lt;MenuItem Header=&quot;База данных&quot;&gt; &lt;MenuItem Header=&quot;База птиц&quot; Command=&quot;{Binding...

Оптимизация и доработка выпадающего меню с загрузкой, посредством Ajax, контента
Всем добра. Делаю меню для сайта, вот сам код. &lt;ul class=&quot;sub-catalog&quot;&gt; &lt;li&gt; &lt;a class=&quot;category-item&quot;...

Проблемы с загрузкой
Здравствуйте. У меня есть такая проблема. Я установил Windows 8, перезагрузил, и тут же у меня начинает мерцать монитор, причем в такт с...

Проблемы с загрузкой HDD
Ребутнул ноут на днях, теперь не грузит систему с диска. БИОС определяет веник все как надо быть, однако при попСьытке загрузить О -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
100
Ответ Создать тему
Новые блоги и статьи
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru