Re[2]: как ужиться со сборщиком мусора Lua ?
От: Troglodit  
Дата: 04.10.08 10:18
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Не очень понимаю, что ты делаешь. StaticSpriteManager.createStaticSprite() создаёт новый спрайт? Тогда вполне нормально, что он удаляется.

N>Может, тебе надо заполнить спрайтами массив obj = {}? Тогда зачаем делается присвоение local obj= StaticSpriteManager.createStaticSprite();?
N>Делай obj[v] = StaticSpriteManager.createStaticSprite();

Да, пример кода не очень удачный , я приведу другой — обойти все спрайты (созданные не в луа) и выставить им координаты (400,300)


 StaticSpriteManager=getMgr();  
   
 for v = 1, 4000, 1 do   
   local obj= StaticSpriteManager.getStaticSprite(v);  
   obj.setPosition(400,300);  
 end



здесь оно тоже все удаляет, хоть не оно создавало. Как поступить ?

я понял, что можно в глобальной таблице сохранять все что обрабатываем и не хотим чтобы это удалилось, но это же как-то не правильно, этот набор объектов я мог создать и не скриптом, а скриптом просто обработать единажды. И мне получается для того чтобы после этой единственной обработки объектов скриптом он их не поудалял нужно делать лишние телодвижения и загонять их в глобальный массив. Разве это удобно ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.