Как правильно загрузить спрайты в cocos2d?
Моя проблема в том, что я делаю игру для iOS с использованием cocos2d, и в этой игре много уровней, поэтому мне придется создать загрузочную сцену для загрузки своих спрайтов для каждого уровня. (например, новые фоны, монстры и другие вещи) Но я понятия не имею об этом, я добавляю все файлы упаковщика текстур (.plist и.pvr.ccz) в sharedSpriteFrameCache в GameData.m. Кто-нибудь знает хороший учебник для этого или может помочь мне решить эту проблему? Спасибо!
2 ответа
Таким образом, в основном вы хотите знать, как загружать и выгружать изображения по своему усмотрению. Как насчет
@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
}
... @конец
Вы можете использовать спрайт с помощью 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 и получить желаемый результат...
Надеюсь, это работает для вас.