#android #memory-management
#Android #управление памятью
Вопрос:
Я использую cocos2d-android-1 для разработки своей игры. У меня некоторая путаница, связанная с выделением памяти. Предположим, мне нужен массив спрайтов. Я объявлю их как
CCSprite mySprites = new CCSprite[MAX_SPRITES];
и при создании я создам их и добавлю к текущему слою, например:
for(int i=0;i<MAX_SPRITES;i )
{
mySprites[i] = CCSprite.sprite("image_" i ".png");
this.addChild(mySprites[i]);
}
Теперь в layer добавлены спрайты, но нам нужно получить к ним доступ во время прохождения игры, поэтому мы будем использовать mySprites;
Итак, мой вопрос в том, когда мы это сделаем.removeAllChildren (true); для этого слоя он удалит все дочерние элементы, а также спрайты mySprites?
Или нам нужно сделать что-то вроде этого
for(int i=0;i<MAX_SPRITES;i )
{
mySprites[i] = null;
}
В моей игре, я думаю, происходит утечка памяти, если есть аналогичный случай.
Мы также можем использовать теги для повторного поиска спрайтов вместо использования
CCSprite mySprites = new CCSprite[MAX_SPRITES];.
Пожалуйста, не могли бы вы сказать мне, каково решение для этого?
Спасибо.