Изменить фоновое изображение в cocos2d - PullRequest
12 голосов
/ 25 мая 2010

Я делаю игру, используя cocos2d. в этом я хочу изменить фон после каждой секунды времени. Я не знаю, как это сделать в cocos2d. У меня 15 различных изображений, и каждое изображение будет отображаться одно за другим, то есть через 1 секунду появится следующее изображение.

Я новичок в cocos2d, так что, если кто-нибудь может мне помочь ???

Заранее всем спасибо.

1 Ответ

18 голосов
/ 25 мая 2010

Полагаю, под фоном подразумевается изображение с полным разрешением 320x480.

Вам нужно будет создать и добавить CCSprite:

CCSprite* background = [CCSprite spriteWithFile:@"bg1.png"];
background.tag = 1;
background.anchorPoint = CGPointMake(0, 0);
[self addChild:background];

Чтобы запланировать замену, используйте планировщик:

[self schedule:@selector(replaceBackground:) interval:1.0f];

При замене фона не забудьте удалить старый фон:

-(void) replaceBackground:(ccTime)delta
{
    // add new background here...

    [self removeChildByTag:1];
}

Метка должна увеличиваться с каждым изображением, конечно.

Одно слово предостережения: загрузка из файла 320x480 (которая будет текстурой 512x512 с использованием 1 МБ памяти, если только 16-битная или PVR не сжатая) из файла вызовет заметную задержку. Если вы делаете экшн-игру, вам придется предварительно загрузить фоновые изображения. Это оставит вам мало памяти для остальной части игры (15 изображений x 1 МБ = 15 МБ или 25 МБ доступной памяти).

PS: больше вопросов и ответов доступно на форуме cocos2d: http://www.cocos2d -iphone.org / forum и я также продолжаю добавлять ответы на часто задаваемые вопросы на мой http://www.learn -cocos2d.com сайт.

...