Повторное использование Cocos2d CocosNodes - PullRequest
1 голос
/ 12 апреля 2009

Я пытаюсь создать крутой счетчик очков в моей игре для iPhone, где я создал цифры от 0 до 9 в фотошопе, и я хочу обновлять счет каждую секунду.

Что я сейчас делаю, так это:

  • В моем init я загружаю все спрайты цифр в массив, чтобы в массиве было 10 элементов.

  • Я создал метод, который разбивает текущий счет (например, 2000) на однозначные числа и получает спрайты из массива, а затем добавляет их в родительский объект CocosNode *.

  • Каждую секунду я получаю родительский CocosNode по его тегу и заменяю его новым родительским объектом.

В настоящее время у меня уже есть проблемы с этим, потому что счет 2000 использует три цифры 0, и я не могу повторно использовать спрайты.

- (CocosNode*) createScoreString:(int) score
{
    NSLog(@"Creating score string : %d", score);
    NSString* scoreString = [NSString stringWithFormat:@"%d", score];

    int xAxes = 0;
    CocosNode* parentNode = [[Sprite alloc] init];
    for (NSInteger index = 0; index < [scoreString length]; index++)
    {
        NSRange range;
        range.length = 1;
        range.location = index;

        NSString* digit = [scoreString substringWithRange:range];

        Sprite* digitSpriteOriginal = [self.digitArray objectAtIndex:[digit intValue]];
        Sprite* digitSprite = [digitSpriteOriginal copy];
        [digitSprite setPosition:cpv(xAxes, 0)];

        xAxes += [digitSprite contentSize].width - 10;

        [parentNode addChild:digitSprite];
    }
    return parentNode;
}

Правильно ли я справляюсь с этим в cocos2d или есть какие-то стандартные функции для этого? Кроме того, если это правильно, как я могу повторно использовать спрайты?

1 Ответ

2 голосов
/ 12 апреля 2009

Я полагаю, что вы хотите использовать LabelAtlas класс , вам нужно будет предоставить только совместимое растровое изображение (например, то, которое использует счетчик fps).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...