Chick |
Отправлено: 26 Июня, 2020 - 11:53:11
|
Наблюдатель
Покинул форум
Сообщений всего: 33
Дата рег-ции: Июнь 2020
Репутация: 0
|
В общем, вопрос такой.
Могу ли я создать одну переменную и в неё, непосредственно перед findimage загружать разные картинки?
Пример:
CODE:
int varik[100][100];
for(n=0;n<100;n++)
{
loadimage (#varik[0][0], "c:\picture"+format(n)+".bmp");
if (findimage(1, #varik[0][0], 0, #PosX, #PosY, 0, 0, 1870, 1030, razb, razb, razb, razb, razb, razb, perc, 1, -1)>0)
{
messagebox("Координаты изображения "+format(n)+" X: "+format(PosX)+" Y: "+format(y));
}
И будет ли код выше эффективнее в плане потребления памяти, чем этот:
CODE:int varik[100][100][100];
for(n=0;n<100;n++)
{
loadimage (#varik[n][0][0], "c:\picture"+format(n)+".bmp");
}
for(n=0;n<100;n++)
{
if (findimage(1, #varik[n][0][0], 0, #PosX, #PosY, 0, 0, 1870, 1030, razb, razb, razb, razb, razb, razb, perc, 1, -1)>0)
{
messagebox("Координаты изображения "+format(n)+" X: "+format(PosX)+" Y: "+format(y));
}
} |
|
|
Chick |
Отправлено: 26 Июня, 2020 - 12:19:36
|
Наблюдатель
Покинул форум
Сообщений всего: 33
Дата рег-ции: Июнь 2020
Репутация: 0
|
Zireael пишет: 1 раз загрузить картинки, потом искать.
Цитата: int varik[100][100][100];
4мб памяти думаю ни на что не влияет.
Это очень упрощенный пример. Мне нужно понять принцип, как правильнее конструировать скрипт. |
|
|
Zireael |
Отправлено: 26 Июня, 2020 - 12:33:46
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: как правильнее конструировать скрипт.
Цитата: 1 раз загрузить картинки, потом искать. |
|
|
Chick |
Отправлено: 26 Июня, 2020 - 12:37:42
|
Наблюдатель
Покинул форум
Сообщений всего: 33
Дата рег-ции: Июнь 2020
Репутация: 0
|
Zireael пишет: Цитата: как правильнее конструировать скрипт.
Цитата: 1 раз загрузить картинки, потом искать.
У меня кибор вылетает с out of memory от такого варианта. Я грешу на наличие полутора десятков трехмерных массивов, нужных для загрузки картинок.
Поэтому и задался вопросом - а нельзя ли упростить скрипт в плане загрузки памяти...
И в итоге - loadimage засирает память кибора или нет?
Если нет, то гораздо эффективнее будет загружать картинку непосредственно перед использованием. |
|
|
Zireael |
Отправлено: 26 Июня, 2020 - 12:42:38
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Я грешу на наличие полутора десятков трехмерных массивов
Размер массивов?
Цитата: loadimage засирает память кибора или нет?
Нет.
Цитата: int varik[100][100][100];
Картинки размером 100*100? Если нет, то укажите меньший размер, тогда меньше памяти будет выделено. |
|
|
Chick |
Отправлено: 27 Июня, 2020 - 09:56:06
|
Наблюдатель
Покинул форум
Сообщений всего: 33
Дата рег-ции: Июнь 2020
Репутация: 0
|
Zireael пишет: Размер массивов? [100][100][100]
Zireael пишет: Нет. Спасибо, именно это я и хотел понять.
Zireael пишет: укажите меньший размер, тогда меньше памяти будет выделено. Сложно заранее сориентироваться, т.к. картинки появляются по мере написания скрипта и появления новых локаций/сцен и т.д. Поэтому с запасом указал.
Но...
Поудалял и 3- и 5-мерные массивы, всё равно при загрузки в кибор скрипта аут оф мемори (причем, скрипт - это подключаемый мелкий скриптик)...
Появляются кровожадные мысли о винде...
И сегодня я их воплощу
(Добавление)
Chick пишет: Zireael пишет: Размер массивов? [100][100][100]
Zireael пишет: Нет. Спасибо, именно это я и хотел понять.
Zireael пишет: укажите меньший размер, тогда меньше памяти будет выделено. Сложно заранее сориентироваться, т.к. картинки появляются по мере написания скрипта и появления новых локаций/сцен и т.д. Поэтому с запасом указал.
Но...
Поудалял и 3- и 5-мерные массивы, всё равно при загрузки в кибор скрипта аут оф мемори (причем, скрипт - это подключаемый мелкий скриптик)...
Появляются кровожадные мысли о винде...
И сегодня я их воплощу
А в целом, спасибо, Зираэль и Кибор - вы очень мне помогаете! |
|
|
Chick |
Отправлено: 27 Июня, 2020 - 17:33:37
|
Наблюдатель
Покинул форум
Сообщений всего: 33
Дата рег-ции: Июнь 2020
Репутация: 0
|
Zireael пишет: Цитата: при загрузки в кибор скрипта аут оф мемори
Значит в скрипте ошибка.
Вполне возможно. И даже скорей всего. Но разобраться сложно, приходится юзать Notepad ))
Вот если бы функционал отладчика включал в себя более тщательные проверки скрипта - было бы замечательно )) Но, увы и ах, используем что есть ))
И тем не менее, вариант с динамической загрузкой картинок позволит сделать Кибор нетребовательным к ресурсам и писать скрипты практически неограниченной сложностью... |
|
|
Zireael |
Отправлено: 27 Июня, 2020 - 18:19:04
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Но разобраться сложно
Выкладывайте код, который приводит к вылету, подскажем что не так.
Если вылет во время работы скрипта, то запускайте отладчик, покажет на какой строке вылет.
Если при запуске скрипта, то закомментируйте часть кода, чтобы выяснить что именно приводит к вылету.
Цитата: вариант с динамической загрузкой картинок позволит сделать Кибор нетребовательным к ресурсам и писать скрипты практически неограниченной сложностью...
Грузите постоянно, никто ж не запрещает. А что сейчас чем-то ограничена сложность? |
|
|
|