-[CCFileUtils fullPathForFilename:resolutionType:] : cocos2d: Предупреждение: файл не найден:

#ios #objective-c #menu #cocos2d-iphone #texturepacker

#iOS #objective-c #меню #cocos2d-iphone #texturepacker

Вопрос:

-[CCFileUtils fullPathForFilename:resolutionType:] : cocos2d: Предупреждение: файл не найден: play.png

Игра Cocos2d …. чрезвычайно проста, только что запустил ее.

Это весь класс, и «play.png» и «sound.png» не найдены. Они оба расположены в «buttons.plist» (документы для упаковки текстур) и включены в этапы сборки.

Класс:

 - (id) init {

    if ((self = [super init])) 
    {
    //[[SimpleAudioEngine sharedEngine] playBackgroundMusic:@"looped.mp3" loop:YES];
        [[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"buttons.plist"];

        CGSize winSize = [CCDirector sharedDirector].winSize;

        CCSprite* background;
        if( winSize.width == 568 || winSize.height == 568 )
            background = [CCSprite spriteWithFile: @"title_bg-5x.png"];
        else
            background = [CCSprite spriteWithFile: @"title_bg.png"];

        [background setPosition: ccp(winSize.width/2, winSize.height/2)];
        [self addChild: background];

        CCMenuItemImage *play = [CCMenuItemImage itemWithNormalImage:@"play.png" selectedImage:@"play.png"
                                                                   target:self selector:@selector(actionGame:)];


        if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
        {
            play.position =  ccp(winSize.width/2,winSize.height/2);
        }
        else
        {
            play.position =  ccp(winSize.width/2,winSize.height/2);
        }

        CCMenuItemImage *sound = [CCMenuItemImage itemWithNormalImage:@"sound.png"
                                               selectedImage: @"sound.png"
                                                      target: self
                                                    selector:@selector(actionSound:)];
        if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
        {
            sound.position=ccp(winSize.width/2,winSize.height/2);
        }
        else
        {
            sound.position=ccp(winSize.width/2,winSize.height/2);
        }


        CCMenu *menu = [CCMenu menuWithItems:play, menu, nil];
        [self addChild:menu z:4];

    }


    return self;
}
  

Навигатор:
файлы .plist с quot;play.pngquot; и quot;sound.pngquot;

На этапах сборки также есть все файлы .plist и .png.

Есть идеи, почему я получаю эту ошибку / почему кнопки не отображаются? Это только начало проекта, и у меня никогда раньше не было этой проблемы.

Спасибо за любую помощь, которую вы можете мне оказать.

Комментарии:

1. эти инициализаторы элементов меню не ищут фреймы спрайтов в атласе текстур. Чтобы использовать фрейм спрайта, используйте инициализатор пункта меню, который принимает существующий спрайт в качестве входных данных, и создайте этот спрайт с фреймом спрайта из атласа

2. Я не могу найти, что вы имеете в виду; CCMenuItemSprite?

3. Я попробовал CCSprite *test = [CCSprite spriteWithSpriteFrameName:@»play.png»]; CCMenuItemSprite *play = [CCMenuItemSprite itemWithNormalSprite:тест selectedSprite:цель теста: self selector:@selector (actionGate:)]; но ошибка гласила: причина: ‘дочерний элемент уже добавлен. Его нельзя добавить снова ‘

4. я думаю, вы не можете использовать один и тот же спрайт для обычного и выбранного

5. По какой-то причине он даже не может найти изображения из листа спрайтов? -[CCFileUtils fullPathForFilename:resolutionType:] : cocos2d: Предупреждение: файл не найден: (даже когда я меняю выбранный)

Ответ №1:

Это происходит при первой инициализации или после?

Если это произойдет после первого:

Проверьте, не использовали ли вы;

 [[CCTextureCache sharedTextureCache] removeUnusedTextures];
  

Где-то после инициализации. Такая же проблема возникла и в моем проекте, и я думаю, что приведенный выше код работает не так, как я ожидал.