Навигация
· XNA FAQ
· С чего начать
· Конкурсы
· Обратная связь
· XNA Блоги
Сейчас на сайте
· Гостей: 1

· Пользователей: 0

· Всего пользователей: 3,684
· Новый пользователь: headron
Последние фото
Эх, чуть не проспал закрытие.
Эх, чуть не проспал ...
Альбом: XNA Engine

GB
GB
Альбом: XNA Engine

South Park Coon & Friends
South Park Coon & Fr...
Альбом: XNA Games

Блоги
yavshoke
» XboxOne - интерес...
dampirik
» Push уведомления ...
dampirik
» Реклама,статистик...
Chort
» XNA и StartCoroutine
Chort
» Curve Class
dampirik
» Реклама, статисти...
dampirik
» Увеличение скорос...
dampirik
» Реклама, статисти...
general
» Распаковка DxtCom...
general
» Как работать с XN...
Поддержка
microsoft.com
1gb.ru - Дом для вашего сайта
Статистика посещений:

Просмотр темы
 Распечатать тему
Индикатор загрузки.
fnfr
#1 Распечатать сообщение
Опубликовано 09.01.2014 14:40:12
Новичок


Сообщений: 7
Зарегистрирован: 22.12.13

Если загружать уровень в игру, то он задержит Update и обновления не будет, пока он не загрузится. Пока не будет обновления, индикатор загрузки не отобразит текущий процент загрузки. Когда загрузка закончится, начнётся новый цикл Update, но загрузка уже будет 100%, а значит пользователь не увидит работу индикатора. А как правильно организуют такие индикаторы?
 
ZeLDER
#2 Распечатать сообщение
Опубликовано 09.01.2014 14:42:33
Специалист


Сообщений: 91
Зарегистрирован: 19.03.13

я в другом потоке обновлял экран загрузки посылая туда "стадии загрузки"
Изменил(а) ZeLDER, 09.01.2014 14:45:20
 
fnfr
#3 Распечатать сообщение
Опубликовано 09.01.2014 14:46:34
Новичок


Сообщений: 7
Зарегистрирован: 22.12.13

ZeLDER написал:
я в другом потоке отображал экран загрузки и посылал туда "стадии загрузки"

Через переменную в статическом классе? Через события? Обычно с передачей данных в другой поток возникают трудности. А как у Вас с этим?
 
beaver
#4 Распечатать сообщение
Опубликовано 09.01.2014 14:56:07
Аватар пользователя

Администратор


Сообщений: 1772
Зарегистрирован: 22.02.09

Если совсем уж по-простому: допустим есть 1-ландшафт, 2-постройки, 3-враги, 4-логика, 5-физика. Итого 5 элементов для загрузки. Вот и грузим их, после загрузки каждого элемента сигналим о 20% загрузке (100/5), при этом индикатор интерполируем до следующих 20%.
 
CSharpCraft
#5 Распечатать сообщение
Опубликовано 09.01.2014 15:06:40
Аватар пользователя

Специалист


Сообщений: 190
Зарегистрирован: 27.03.13

загрузку в отдельный поток, а индикатор можно сделать типа вращающегося, или движущихся точек, чтобы не заморачиваться с заполнением
 
ZeLDER
#6 Распечатать сообщение
Опубликовано 09.01.2014 15:12:58
Специалист


Сообщений: 91
Зарегистрирован: 19.03.13

fnfr написал:
ZeLDER написал:
я в другом потоке отображал экран загрузки и посылал туда "стадии загрузки"

Через переменную в статическом классе? Через события? Обычно с передачей данных в другой поток возникают трудности. А как у Вас с этим?


Примерно делал так: в игре создавал класс Screen который отвечает за текущий "экран" в котором свой Load, Update и Draw. Вот в этом Screen, который непосредственно для уровня игры (с экраном загрузки), при его загрузке (метод Load) создавал поток:
Загрузить источник  GeSHi: C#
  1. ThreadPool.QueueUserWorkItem(new WaitCallback(LoadContentDo), new ManualResetEvent(false));
Добавлено за 0.004 секунд, используя GeSHi 1.0.8.2


А в этом самом методе LoadContentDo грузил класс с логикой уровня и все объекты для уровня. Попутно в своем потоке (внутри класса Screen, хоть статикой, хоть как) отображая стадии (как описал beaver).
По завершении загрузки (метода LoadContentDo) переключал указатель на функции Update и Draw на те, которые в классе логики игры.
 
Alexander
#7 Распечатать сообщение
Опубликовано 09.01.2014 18:27:34
Старший специалист


Сообщений: 211
Зарегистрирован: 15.12.13

fnfr


Я так понял у тебя чистый xna ? тоже интерисует этот вопрос только у меня гибрид
 
Malli
#8 Распечатать сообщение
Опубликовано 12.01.2014 05:30:27
Аватар пользователя

Специалист


Сообщений: 89
Зарегистрирован: 16.02.12

Присоединяюсь к данному вопросу)
Я думал реализовать пошагово, как впринципе многие и делают. После каждой загрузки какого нибудь файла или действия обновлять информацию о состоянии загрузки в целом. Но тогда возникнут подтормаживания в процессе
 
Alexander
#9 Распечатать сообщение
Опубликовано 12.01.2014 15:47:03
Старший специалист


Сообщений: 211
Зарегистрирован: 15.12.13

Malli


На самом деле это супер секретные алгоритмы и тебе никто не скажет как это сделать, тебе скажут что "это можно сделать", как мне уже сказали "за тебя никто писать код не будет"
 
ZeLDER
#10 Распечатать сообщение
Опубликовано 12.01.2014 16:33:42
Специалист


Сообщений: 91
Зарегистрирован: 19.03.13

Алгоритм выше описал, чем не подходит? Конечно никто код писать не будет, ибо никто не видит твое приложение и понятия не имеем как внедрить в конкретно твой проект.
 
Kwasti
#11 Распечатать сообщение
Опубликовано 15.01.2014 10:20:53
Младший специалист


Сообщений: 31
Зарегистрирован: 11.11.13

Совершенно простой вопрос, с первым же правильным ответом, раздули почти на две страницы?
Чем не нравится ответ Zelder'а? Он самый простой и самый верный и оптимальный!

P.S. У меня сложилось впечатление, что народ не умеет и не хочет разбираться с потоками. "Уж лучше сколочу автомобиль из досок, и буду двигать его упираясь в землю ногами, чем идти учиться"
 
Перейти на форум:
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Мини-чат
Вы должны авторизироваться, чтобы добавить сообщение.

27.08.2014
Я умею немного на asp.net + html и css

22.08.2014
на ASP mvc 3 есть пару проектов. Могу помочь, если нужно. Обидно, если закроется Frown

21.08.2014
я тоже ноль

21.08.2014
Я в вебе только с php занимался да и то на уровне чтоб работало.

21.08.2014
Я в вебе полный ноль…

21.08.2014
Переводить его надо, хоть на ту же азуру. И двиг менять на что-то современное. Если есть веб-разрабы - можем скооперироваться. Один делать не буду.

21.08.2014
не знаю всех нюансов по оплате и все хорошее когда нибудь заканчивается

21.08.2014
А что случилось?

21.08.2014
похоже сайт будет работать до 28го числа

09.08.2014
Апи пока не видел. Но есть приложение в магазине Live Lock Screen BETA, так что думаю скоро будет

08.08.2014
Я про API для Update1. На нем работает это

08.08.2014
А что именно нужно? Чтото и сейчас открыто http://msdn.micro.
...105).aspx

06.08.2014
Кто-нибудь слышал об открытии доступа к Lock Screen Api?

31.07.2014
VPDExpress на базе MVS 2012, ни в какую не ловит исключения. Даже если их сам создаешь. И всех так?

25.07.2014
С днем системного администратора причастных к этой профессии! По случаю - тортик от жены

RSS каналы сайта
XNA - Новости
XNA - Статьи
XNA - Форум
XNA - Галерея
XNA - Файлы
Время загрузки: 0,09 секунд 8,710,479 уникальных посетителей