|
Основной форум Сюда все проблемы связанные с программированием. |
31.01.2011, 19:53
|
#1
|
Легенда
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений (для 5,072 пользователей)
|
Глюк с массивом.
Если скомпилить jar файл этого кода то ошибки лог не выдаст. Но но в эмуляторе и на телефоне приложение намертво виснет. Чуть не свихнул думалку пока соображал в чем проблема. Нашел. Пришел к выводу, что прога виснет на создании массива изображений(layer1:array). Вопрос. Можно ли создать такой массив и есть ли альтернатива?
program Scarlet_Trace;
uses sensor;
var x, y, xline, yline, pointer_x, pointer_y, first_pointer_x, first_pointer_y, pointer_time, pe: integer;
keyCode: integer;
Logo: Image;
Layer1:Array[0..9,0..5] of Image;
Layer2:Array[0..9,0..5] of Image;
Layer3:Array[0..9,0..5] of Image;
Level: integer;
procedure Controls;
begin
If pe>0 then begin
first_pointer_x:=pointer_pressed_x;
first_pointer_y:=pointer_pressed_y;
pointer_x:=pointer_dragged_x;
pointer_y:=pointer_dragged_y;
DrawLine(first_pointer_x,first_pointer_y,pointer_x,pointer_y);
//DrawText('+',pointer_x,pointer_y);
end;
end;
begin
sensor.init;
Debug('=====');
repeat
SetColor(255, 0, 0);
FillRect(0, 0, GetWidth, GetHeight);
SetColor(255, 0, 0);
keyCode:= GetKeyPressed;
pe:=pointer_state;
Controls;
Repaint;
until false;
End.
__________________
Ибо как сказал Бгдн:
|
(Offline)
|
|
31.01.2011, 21:50
|
#2
|
Бывалый
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений (для 215 пользователей)
|
Ответ: Глюк с массивом.
С картинками вродь только квадратные можно массивы (9х9 например)
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
31.01.2011, 21:57
|
#3
|
Легенда
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений (для 5,072 пользователей)
|
Ответ: Глюк с массивом.
Спасибо. Заработало.)
Точнее не заработало. Но теперь хоть до дебага доходит)
__________________
Ибо как сказал Бгдн:
|
(Offline)
|
|
31.01.2011, 22:47
|
#4
|
Мастер
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений (для 790 пользователей)
|
Ответ: Глюк с массивом.
Если хочешь создать двухмерный неквадратный массив,
можно объявить одномерный массив переменных своего типа данных, а свой тип данных является одномерным массивом чего-нить.
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
|
(Offline)
|
|
31.01.2011, 23:45
|
#5
|
Легенда
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений (для 5,072 пользователей)
|
Ответ: Глюк с массивом.
Да тут уже другая проблема). Out Of Memory).
__________________
Ибо как сказал Бгдн:
|
(Offline)
|
|
01.02.2011, 00:26
|
#6
|
Мастер
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений (для 790 пользователей)
|
Ответ: Глюк с массивом.
f:image;
...
f:=nil;
Вроде как экономит память.
Или сделать массив строк, в них прописать названия файлов (a:array [1..9,1..9] of string) и использовать более медленный способ.
drawimage(loadimage(a[b,c]),x,y);
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
|
(Offline)
|
|
01.02.2011, 00:31
|
#7
|
Бывалый
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений (для 215 пользователей)
|
Ответ: Глюк с массивом.
"Более медленный способ" приведет к аутОфМемори еще быстрее..
|
(Offline)
|
|
01.02.2011, 00:38
|
#8
|
Мастер
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений (для 790 пользователей)
|
Ответ: Глюк с массивом.
У меня хватало и по-нормальному, так я ещё не пробовал.
а почему?
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
|
(Offline)
|
|
01.02.2011, 00:43
|
#9
|
Бывалый
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений (для 215 пользователей)
|
Ответ: Глюк с массивом.
Создаются временные переменные, а удаляются только при system.gc() и то если повезет.
Я раньше пробовал так делать, довольно быстро выкидывало.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
01.02.2011, 01:39
|
#10
|
Легенда
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений (для 5,072 пользователей)
|
Ответ: Глюк с массивом.
Да тут даже дело не в этом. Дело в колличестве. Грузятся по сути 180 изображений 32х32(и не спрашивайте зачем))) Я час тупил с этими массивами, а когда исправил - понял, что дурак))).
__________________
Ибо как сказал Бгдн:
|
(Offline)
|
|
02.02.2011, 20:23
|
#11
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Глюк с массивом.
Легче все твои 180 изображений поместить на одну картинку и выводить на экран только кадр из этой большой картинки. Либо использовать библиотеку спрайтов + эта большая картинка.
|
(Offline)
|
|
02.02.2011, 20:29
|
#12
|
Легенда
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений (для 5,072 пользователей)
|
Ответ: Глюк с массивом.
Сообщение от odd
Легче все твои 180 изображений поместить на одну картинку и выводить на экран только кадр из этой большой картинки. Либо использовать библиотеку спрайтов + эта большая картинка.
|
Я уже исправил. Теперь выводятся предзагруженные картинки. Короче тайловая карта.)
Я даже себя не узнаю). Как мог так ступить).
Кстати а каким образом их можно поместить на одно изображение?
__________________
Ибо как сказал Бгдн:
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:35.
|