![]() |
Ответ: Как ускорить загрузку ресурсов если их много
vladpol1, ИМХО включи картинку заставку с надписью типа "Ожидайте...", можешь включить музычку пользователю (в лупе, если время загрузки намного длиннее музыки), а если уж хочеться прогресс бар, то можно не особо морочась выводить полоску не рассчитываемую дикими методами а с дискретными значениями после прохождения разных блоков загрузки, например:
Код:
вывели заставку, включили музыку |
Ответ: Как ускорить загрузку ресурсов если их много
YaLAS, по моему в посте 10 уже есть подобный код с
прогреесом 5 - 10 - 15 ... 100 Прилагаю мой 100% рабочий код загрузки любых файлов с полосой загрузки. Для проверки скиньте в папку C:\gr\ любые 5 *.jpg фото большого размера и назовите их 1,2,3,4,5. Для наглядности: вначале прогресс бар будет показывать медленно загрузку этих изображений, затем быстро пробежит до конца. Код:
;зогрузко |
Ответ: Как ускорить загрузку ресурсов если их много
Цитата:
Давайте, заDelay'им вообще везде, просимулируем всякую задержку. Сделаем загрузку в 5 раз дольше... |
Ответ: Как ускорить загрузку ресурсов если их много
Цитата:
|
Ответ: Как ускорить загрузку ресурсов если их много
Цитата:
|
Ответ: Как ускорить загрузку ресурсов если их много
Цитата:
Для наглядности: вначале прогресс бар будет показывать медленно загрузку этих изображений, затем быстро пробежит до конца, чтобы была ЛУЧШЕ видна загрузка, а расчитать чтобы загрузка была по всей длинне прогресс бара не проблема |
Ответ: Как ускорить загрузку ресурсов если их много
Пожалуйста без Delay, конечно было верней поставить Flip для отображения прогресса
Код:
|
Ответ: Как ускорить загрузку ресурсов если их много
Код:
Const pr=25 Код:
Local a=n/pr Сперва определи количество ресурсов (файлов), предположим их 44, далее примерно такой код: Код:
Const loadingBarHeight=20 И то это говнокодерство, никто не будет так грузить информацию, должны быть файлы форматов уровней или т.п. которые содержат списки и информацию о медии, где она и для чего должна быть.. |
Ответ: Как ускорить загрузку ресурсов если их много
Цитата:
в твоём коде 6 знаков минус, умножить, разделить, столько расчётов! Это считается нормальным кодом!? Хорошо отразится на скорости загрузки... |
Ответ: Как ускорить загрузку ресурсов если их много
Иди учи мат часть!
20 вычитаний и 5 умножений каждый цикл... Знаешь сколько нужно просчётов чтобы в RealTime из камеры с 30 fps, разрешением в 1960х1080, используя нейронные сети, распозновать объекты машин, определять перед/зад её (по цвету знака, белый/жёлтый), и далее уже распознавать саму информацию со знака, затем эти данные посылаются на сервер, и там с невиданной частотой будут проверки в базах данных, например въезжала ли эта машина уже в центр города, или не в розыске ли она и т.п. Это учитывая что таких камер тысячи. Так вот теперь к теме: оптимизировать на мелочи и ровном месте, где 1мс на протяжении 3 секунд загрузки (что есть 3000мс), это много? Да темболее там и 1 мс в попу не будет. В третьих, я предоставил код в котором есть возможность настроить высоту полосы загрузки. И чем легко читаемый код плохой? УЧИСЬ ПРОГРАММИРОВАТЬ. Давай, школота будет учить жизни дедушек... Ладно, чего я тут, не мне же потом с таким кодом работать, просто неприятно, когда по работе приходиться работать с говнокодом, от какого-то зазработчика, который "профи", и работает в своей сфере уже более 5 лет, это говорит о том, что дурные привычки, и программировать нужно учиться правильно с ранних начинаний. Конкретнее по некорректности твоего кода: 1. "Const pr=25", хорошо, константа, число 25, а что это простите? pr - много о чём говорит. 2. "For n=50 To 575 Step pr", тоесть у нас если посчитать 21 итераций, учитывая что это потому что pr=25. А почему именно 25? Ладно забей, идём дальше: 3. "Color 255,200,130: Rect n,215,20,25,1", установка цвета каждый цикл, это вызов функции, перелокация памяти (надеюсь знаком с областями памяти, локальные/приватные переменные и т.п.?). Вызов функции установки цвета. Учитывая что это 2D, и отрисовка происходит по вызову, то установка также, произойдёт по вызову, или надеюсь Сибли просто присваивает значения 3 переменным, которые используются после (хотя учитывая что miniB3D - это полный говнокод, то страшно подумать что есть Blitz3D внутри..). Почему не вынести установку цвета прямо перед вызовом цикла? Религия не позволяет? 4. "Local a=n/pr" - простите, получать индекс таким образом? Благо я смекалистый, понимаю что a - выступает далее в роли "типо индекса", я изменю длину Step'а или колличество циклов, индекс пойдёт лесом, и всё в цикле на нём основонное тоже пойдёт дебрями.. Далее длина полосы загрузки, привязана именно к данному случаю, и "магическому" набору чисел. В моём же примере, неважно сколько медии, она всегда будет корректно отображать именно позицию, от левой части экрана до правой. 5. "gr1=LoadImage("C:\gr\"+a+".jpg")" и такие же дублежи далее, ты не смекнул что во первых это можно было обернуть в ещё один цикл, ну это так, а во вторых, проследи за "a": первая итерация а=2, вторая итерация а=3, последняя а=23. Это у нас таки номера файлов нужны: 2, 21, 22, 23, 24, 3, 31, 32, 34, 4 ..... 23, 231, 232, 233, 234 Думаю комментарии излишни.. Для пущей твоей практики, задачка (если конечно ты хочешь учиться, и прислушаешься к советам): есть файлы, список имён файлов храниться в виде строк в текстовом файле: Код:
ui_compass_base.png Пробегаешься по всем строкам, записываешь их в массив. Теперь у тебя "level_resources$[11]" массив, нужно загрузить эту медию, предположим она в одной папке, неважно в какой. Напиши код который нарисует на экране полосу загрузки, при этом полоса будет иметь рамку красного цвета, затем внутрь маленький отступ (1 пиксель), и там сама полоска. Эта полоса должна пройти во время загрузки от начала, и до конца. Эта полоса должна иметь лёгкую возможность менять позицию, например я хочу сделать её разной длины (разные разрешения экрана), и в разной позиции на экране тоже (снова разные разрешения). Экран чёрный, рамка оранжевая (255,128,0), а полоса голубая (0,128,255) Всё просто тут, пишеться менее чем в 10 строк (используя только объявление переменных в одной строке, а остальное без ":"). |
Ответ: Как ускорить загрузку ресурсов если их много
MoKa, тебя конкретно задели. Капитально ответил! Но не напрасно ли? Поймут ли?
Касательно загрузки ресурсов. Я в бородатые времена писал менеджер ресурсов. Ф-ция создания принимала на вход либо папку с файлами либо архив. После этого я вызывал ф-цию RM_Prepare() которая генерила список, a тип загружаемого ресурса брался из расширения (не надёжно, но для себя писал же). Отдельные от моделей текстуры лежали в отдельных папках. После этого я брал кол-во ресурсов во временную переменную и вызывал цикл, в котором каждый пробег вызывал ф-цию RM_LoadNextResource. После чего нужный ресурс можно было получить ф-цией RM_GetResouce(FileName$). Работало довольно удобно. Будет время - могу выложить если найду. |
Ответ: Как ускорить загрузку ресурсов если их много
|
Ответ: Как ускорить загрузку ресурсов если их много
Цитата:
|
Ответ: Как ускорить загрузку ресурсов если их много
Полезно.:super: Учтем.
|
Ответ: Как ускорить загрузку ресурсов если их много
Извиняюсь что не проверил ошибки в коде, очень быстро был написан,
хотел показать лишь один из возможных принципов. Только что же никто не помог Colossus'у нормальным кодом когда он спрашивал как огранизовать полосу загрузки?? Или только можем обсуждать и кичиться? |
Часовой пояс GMT +4, время: 16:54. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot