Я тут подумал, что вопрос у меня будет в будущем не мало, вот и решил создать тему отдельно.
Первый вопрос, у меня есть пули которые временами добавляются в массив, я вот в их удалении делаю так:
Code
//Движение пуль, проверка столкновений...
for(var i:int = 0; i<bullets.length; i++)
{
bullets[i].y -= 8;
if (bullets[i].hitTestObject(En) || bullets[i].y<=-20)
{
removeChild(bullets[i]);
bullets.splice(i,1);
}
}
Вопрос в следующем этого достаточно? Просто я вроде удаляю экранный объект, а потом удаляю объект из массива, а может надо что-то еще?
Просто для меня еще есть загадки в контроле памяти во Flash)Добавлено (11.05.2012, 03:30)
---------------------------------------------
Люди вопрос, а нужно ли сортировать массив после удаления тех же пуль или врагов из него.
Просто чтобы удалить врагов при переходе в кадр "проиграл" после проигрыша мне пришлось вызвать цикл два раза, а это как минимум грузит проц лишний раз.
Code
for(j=0; j<Enems.length; j++)
{
removeChild(Enems[j]);
delete Enems[j];
Enems.splice(j,1);
}
for(j=0; j<Enems.length; j++)
{
removeChild(Enems[j]);
delete Enems[j];
Enems.splice(j,Enems.length);
}
И чтобы удалить из массива врагов мне пришлось вызвать цикл два раза, пока что-то не могу понять, почему оно так, просто я игрался с массивами, и вроде как когда выводишь текстовое представление массива в Label и удаляешь из него элементы он сортируется сам или я ошибаюсь? Просто как-то не понятно мне почему враги в нем остаются и мне приходится проверять цикл дважды для полного их удаления. Ведь в полной игре графики это будет совсем не очень, когда придется выводить эффекты и т.п., как-то не хочется стать еще одним кривобоким быдлокодером))Добавлено (11.05.2012, 03:34)
---------------------------------------------
И еще один вопросик, как настроить глубину объектов? Ну к примеру я поставлю TextField и хотел бы чтобы новоиспеченные враги проходили под ним, а не над ним.
Добавлено (11.05.2012, 16:46)
---------------------------------------------
апш