Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.24;
Скачать: CL | DM;

Вниз

Проблемы с динамически создаваемыми объектами.   Найти похожие ветки 

 
greenrul ©   (2003-05-16 19:45) [0]

У меня есть 2-мерный массив 20х20 типа TImageSprite. Для каждого спрайта оттуда есть 3 bitmap"a которые туда нужно наложить один на другого. Проще говоря у меня 3 слоя, 20х20 спрайтов карты (тайлов), но размер карты может меняться.
Создаю тайлы так: Tiles[j,i]:=TImageSprite.Create(DXSpriteEngine1.Engine);
После этого в цикле
for i:=1 to Map.cX do {Map.cX - кол-во клеток по горизонтали}
for j:=1 to Map.cY do {по вертикали}
for o:=1 to 3 do {3 слоя}

забиваю картинки в спрайты
Image:=images.Items.Find(img);

НО!

Если я создаю сразу 20х20 спрайтов в OnCreate, и заполняю их потом, картинки друг на друга не накладываются, а видим только последний слой. Если я же создаю cX на cY спрайтов сразу в процедуре рисования слоев и рисую в них, то картинки видны, потом я делаю FreeAndNil для этих объектов (даже на всякий случай делаю Clear и Visible:=false) то если я запускаю еще раз процедуру рисования картинок то старые остаются на прежних местах. Даже если я у всех спрайтов резко поменяю координаты на +10, старые спрайты останутся висеть на прежнем месте и поверх них сдвинутся новые.

В чем дело? И как можно от этой проблемы избавиться?


 
greenrul ©   (2003-05-17 20:45) [1]

Может я их неправильно убиваю? Делаю FreeAndNil, потом снова Create


 
cyborg ©   (2003-05-17 21:29) [2]

Ты просто непонтно объяснил, пиши проще, вникать в твои рассуждения никому неохото.
Покажи народу исходник, тогда ответят быстро.



Страницы: 1 вся ветка

Текущий архив: 2003.11.24;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.03 c
8-79065
Булат
2003-07-28 02:10
2003.11.24
PlayList


3-78758
Виталя
2003-11-03 14:49
2003.11.24
Кодировки


3-78773
stud
2003-11-05 15:22
2003.11.24
отчет - как много в этом звуке!


3-78768
MaD
2003-11-04 13:51
2003.11.24
Посогите построить SQL запрос


1-78976
Aleksandr
2003-11-14 13:02
2003.11.24
Как вернуть дочернее окно в начало координат клиентской области?