2012-03-21 20 views
1

私の問題は: 私はcocos2dを使ってiOSのゲームを作っています。このゲームにはたくさんのレベルがありますので、レベルごとにスプライトを読み込む読み込みシーンを作成する必要があります。 (新しい背景、モンスターなどのような) しかし、私はこれについて考えていない、GameData.m内のsharedSpriteFrameCacheにテクスチャパッカーファイル(.plistと.pvr.ccz) を追加しています。 誰かがこれについての良いチュートリアルを知っていますか、これを解決するのに役立ちますか? ありがとう!あなたはクリックして、以下のメニュー項目画像上のcocos2dでスプライトを正しく読み込む方法は?

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

を追加するためのコード..ですその特定のレベルに移動するために必要となるよう

答えて

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でもメニューでスプライトを使用することができますコードは、メニューの特定の状態に対するスプライトの表示に使用できる情報を提供します。そして、 "MoveLeft"は私が特定のメソッドを呼び出すのに使ったメソッドセレクタです。あなたはCCMenuにm4のオブジェクトを追加して、所望の出力を得ることができます最後に

...

はそれがあなたのために働く願っています。

+0

私は私の英語のため申し訳ありませんが、しかし、私の問題は私のゲームはたくさんのOSのspritesheetsを有することであると私は削除またはspritesheetsを追加し、メモリを解放したいです。 例: ゲームのステージ1では、スプライトシートにstage1.pvr.cczという背景画像stage1BG.pngがあります。 sharedSpriteFrameCacheからstage1.pvr.cczを削除し、もう1つをロードしてデバイスのメモリを解放するにはどうすればよいですか? もう一度、私の英語を残念に思う( – user1284366

+0

)メモリを解放するために未使用のスプライトシートを作成するためのコードを使用することもできます[CCSpriteFrameCache purgeSharedSpriteFrameCache];キャッシュから空けられたスプライトシートの数も表示されます。コンソール – Marine