Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Основной форум

Основной форум Сюда все проблемы связанные с программированием.

Ответ
 
Опции темы
Старый 31.01.2011, 19:53   #1
Gector
Легенда
 
Аватар для Gector
 
Регистрация: 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
cherepets
Бывалый
 
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений
(для 215 пользователей)
Ответ: Глюк с массивом.

С картинками вродь только квадратные можно массивы (9х9 например)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Gector (31.01.2011)
Старый 31.01.2011, 21:57   #3
Gector
Легенда
 
Аватар для Gector
 
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений
(для 5,072 пользователей)
Ответ: Глюк с массивом.

Спасибо. Заработало.)
Точнее не заработало. Но теперь хоть до дебага доходит)
__________________
Ибо как сказал Бгдн:
(Offline)
 
Ответить с цитированием
Старый 31.01.2011, 22:47   #4
Igor
Мастер
 
Аватар для Igor
 
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений
(для 790 пользователей)
Ответ: Глюк с массивом.

Если хочешь создать двухмерный неквадратный массив,
можно объявить одномерный массив переменных своего типа данных, а свой тип данных является одномерным массивом чего-нить.
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
(Offline)
 
Ответить с цитированием
Старый 31.01.2011, 23:45   #5
Gector
Легенда
 
Аватар для Gector
 
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений
(для 5,072 пользователей)
Ответ: Глюк с массивом.

Да тут уже другая проблема). Out Of Memory).
__________________
Ибо как сказал Бгдн:
(Offline)
 
Ответить с цитированием
Старый 01.02.2011, 00:26   #6
Igor
Мастер
 
Аватар для Igor
 
Регистрация: 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
cherepets
Бывалый
 
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений
(для 215 пользователей)
Ответ: Глюк с массивом.

"Более медленный способ" приведет к аутОфМемори еще быстрее..
(Offline)
 
Ответить с цитированием
Старый 01.02.2011, 00:38   #8
Igor
Мастер
 
Аватар для Igor
 
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений
(для 790 пользователей)
Ответ: Глюк с массивом.

У меня хватало и по-нормальному, так я ещё не пробовал.
а почему?
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
(Offline)
 
Ответить с цитированием
Старый 01.02.2011, 00:43   #9
cherepets
Бывалый
 
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений
(для 215 пользователей)
Ответ: Глюк с массивом.

Создаются временные переменные, а удаляются только при system.gc() и то если повезет.
Я раньше пробовал так делать, довольно быстро выкидывало.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Igor (01.02.2011)
Старый 01.02.2011, 01:39   #10
Gector
Легенда
 
Аватар для Gector
 
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений
(для 5,072 пользователей)
Ответ: Глюк с массивом.

Да тут даже дело не в этом. Дело в колличестве. Грузятся по сути 180 изображений 32х32(и не спрашивайте зачем))) Я час тупил с этими массивами, а когда исправил - понял, что дурак))).
__________________
Ибо как сказал Бгдн:
(Offline)
 
Ответить с цитированием
Старый 02.02.2011, 20:23   #11
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Глюк с массивом.

Легче все твои 180 изображений поместить на одну картинку и выводить на экран только кадр из этой большой картинки. Либо использовать библиотеку спрайтов + эта большая картинка.
(Offline)
 
Ответить с цитированием
Старый 02.02.2011, 20:29   #12
Gector
Легенда
 
Аватар для Gector
 
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений
(для 5,072 пользователей)
Ответ: Глюк с массивом.

Сообщение от odd Посмотреть сообщение
Легче все твои 180 изображений поместить на одну картинку и выводить на экран только кадр из этой большой картинки. Либо использовать библиотеку спрайтов + эта большая картинка.
Я уже исправил. Теперь выводятся предзагруженные картинки. Короче тайловая карта.)
Я даже себя не узнаю). Как мог так ступить).
Кстати а каким образом их можно поместить на одно изображение?
__________________
Ибо как сказал Бгдн:
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 03:48.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com