Как правильно загрузить спрайты в cocos2d? - PullRequest
1 голос
/ 22 марта 2012

моя проблема: Я делаю игру для iOS с использованием cocos2d, и в этой игре много уровней, поэтому мне придется создать загрузочную сцену для загрузки своих спрайтов для каждого уровня. (например, новые фоны, монстры и прочее) Но я понятия не имею об этом, я добавляю все файлы Texture Packer (.plist и .pvr.ccz) на sharedSpriteFrameCache в GameData.m. Кто-нибудь знает хороший учебник для этого или может помочь мне решить эту проблему? Спасибо!

Ответы [ 2 ]

1 голос
/ 23 марта 2012

Итак, в основном вы хотите знать, как загружать и выгружать изображения по своему усмотрению. Как насчет

@implementation Level1

- (void) loadLevel
{
    CCSpriteFrameCache* frameCache = [CCSpriteFrameCache sharedSpriteFrameCache];
    CCTextureCache* textureCache = [CCTextureCache sharedTextureCache];

    // Add the sprite frames. This will load the texture as well
    [frameCache addSpriteFramesWithFile:@"monkey.plist"];
    [frameCache addSpriteFramesWithFile:@"player.plist"];
    [frameCache addSpriteFramesWithFile:@"enemy.plist"];

    // Load other textures that are going to be used
    _myBackgroundTexture = [textureCache addImage:@"background.png"];
}

- (void) unloadLevel
{
    CCSpriteFrameCache* frameCache = [CCSpriteFrameCache sharedSpriteFrameCache];
    CCTextureCache* textureCache = [CCTextureCache sharedTextureCache];

    // Remove textures
    [textureCache removeTexture:_myBackgroundTexture];

    // Remove sprite frames. This will load the texture as well
    [frameCache removeSpriteFramesFromFile:@"monkey.plist"];
    [frameCache removeSpriteFramesFromFile:@"player.plist"];
    [frameCache removeSpriteFramesFromFile:@"enemy.plist"];

    // Though normally, id use frameCache removeUnusedSpriteFrames and
    // textureCache removeUnusedTextures
}

... @ Конец

0 голосов
/ 22 марта 2012

Вы можете использовать спрайт с помощью CCMenuItem, а также с помощью меню, так как вам потребуется щелкнуть и перейти на этот конкретный уровень. Ниже приведен код для добавления изображения пункта меню

CCMenuItem *m4 =[CCMenuItemImage itemFromNormalSprite:[CCSprite spriteWithSpriteFrameName:<#(NSString *)spriteFrameName#>] 
                                           selectedSprite:[CCSprite spriteWithSpriteFrameName:<#(NSString *)spriteFrameName#>] 
                                           disabledSprite:[CCSprite spriteWithSpriteFrameName:<#(NSString *)spriteFrameName#>]
                                                   target:self selector:@selector(MoveLeft)];

Приведенный выше код дает информацию, которую вы можете использовать для отображения спрайта для определенного состояния меню. А MoveLeft - это селектор метода, который я использовал для вызова конкретного метода.

Наконец, вы можете добавить объект m4 в CCMenu и получить желаемый результат ...

Надеюсь, у вас это получится.

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