2013-02-19 2 views
3

Для моей 2D-игры:
Во время игры мне нужно загрузить несколько больших текстур2D (2000x2500 пикселей) и выгрузить некоторые другие.
Конечно, я хочу загрузить и выгрузить текстуру2D без зависания игры/ничьей (или меньше ...): x Я не знаю, возможно ли это.Загрузите текстуры во время игры

Я уже использую нитку, чтобы загрузить текстуру во время рисования «Загрузка экрана»

//thread Loading 
ThreadStart th_loadingScreen = delegate { DisplayLoading(LoadingScreen); }; 
new Thread(th_loadingScreen).Start(); 

Но я думаю, что это очень разные.

Конечно, я пытался что-то:

private void LoadUnload() 
{ 
    for (int j = 0; j <= NbrRow; j++) 
     for (int i = 0; i <= NbrCol; i++) 
     { 
      if(somethingTrue) 
      { 
       ThreadStart th_LoadInGame = delegate 
        { 
         LoadInGame(i, j, TextureStringPathToLoad); 
        }; 
       new Thread(th_LoadInGame).Start(); 
      } 
     } 
} 

Но у меня есть немного заморозить.

И, я знаю, как выгружать содержимое, но я не знаю, как разгрузить одни заряженные текстуры: х

ответ

2

Там нет никакого способа, чтобы разгрузить отдельные элементы в ContentManager объекта. Итак, что я делаю, это сделать несколько ContentManager и разделить то, что мне нужно. Таким образом, я могу, например, сохранить Unload и сохранить в памяти все еще.

Что касается небольшого зависания, которое вы видите, то нить сама по себе не гарантирует отсутствие икоты или тому подобное. Я буду возиться с ThreadPriority; попробуйте установить его ниже и посмотреть, что произойдет. Однако это не гарантия. Из статьи:

Операционные системы не обязаны выполнять приоритет потока.

+0

Я даю вам баллы, потому что вы ответили на мою проблему с резьбой, и я сделаю еще одну тему о разгрузке (потому что у меня больше вопросов об этом, и если кто-то отвечает мне, я не знаю, кому нужно набирать баллы). Приоритет темы плюс более низкий размер текстур сделал работу. Thx за помощь! – Sharpnel

+0

[Вот ответ о Unload() Texture2D] (http://stackoverflow.com/a/14970682/1456533) – Sharpnel

Смежные вопросы