我的問題是: 我正在使用cocos2d製作iOS遊戲,並且此遊戲有很多關卡,所以我將不得不創建一個加載場景來加載我的每個關卡的精靈。 (如新的背景,怪物和其他東西) 但我不知道這一點,我在GameData.m的sharedSpriteFrameCache中添加了所有Texture Packer文件(.plist和.pvr.ccz) 。 有誰知道這個很好的教程或可以幫助我解決這個問題? 謝謝!如何正確加載cocos2d中的精靈?
1
A
回答
1
所以基本上你想知道如何加載和卸載圖像,你認爲合適。如何
@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
}
... @end
-1
您可以通過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並獲得所需的輸出...
希望它爲你工作。
我爲我的英語很抱歉,但我的問題是,我的比賽有很多OS spritesheets,我想刪除或添加的spritesheets和釋放內存。 示例: 在我的遊戲的第1階段,它在spritesheet中有一個名爲stage1.pvr.ccz的背景Image stage1BG.png。 如何從sharedSpriteFrameCache中刪除stage1.pvr.ccz並加載另一個,釋放設備的內存。 再次,對不起我的英文(: – user1284366 2012-03-22 18:05:19
)您可以使用代碼來創建未使用的spritesheet來釋放內存[CCSpriteFrameCache purgeSharedSpriteFrameCache];它還會顯示從緩存中釋放的spritesheet的數量。安慰 – Marine 2012-03-23 05:02:11