2013-02-11 97 views
0

我想用cocos2d開發一款iphone遊戲,而且我是初學者。 我有一些問題試圖顯示屏幕上邊界的生命數。所以我想從3條生命開始,在每個錯誤中減少其中的一條。這是我的代碼Cocos2d應用程序崩潰,無效的spriteFrameName

-(void)life { 
    NSMutableArray *position = [NSMutableArray 
           arrayWithObjects:@"460", @"440", @"420", nil]; 
    spriteLifeArray = [[NSMutableArray alloc] init]; 
    for (int i = 0; i<life; i++) { 
     spriteLife = [CCSprite spriteWithSpriteFrameName:@"cuore.png"]; 
     [spriteLife setTag:i]; 
     spriteLife.scale = 0.5; 
     spriteLife.position = ccp([[position objectAtIndex:i] floatValue], 305); 
     [self addChild:spriteLife]; 
     [spriteLifeArray addObject:spriteLife]; 
    } 
} 

,這是我的GAMEOVER功能和生活移除

-(void)gameOver:(int)value punteggio:(id)punti{ 
    if (value == 1) { 
     // partita vinta 
    } else if(value == 2) { 
     if (life > 1) { // 1 
      life = life - 1; 
      for (CCSprite *spr in spriteLifeArray) { 
       if (life == spr.tag) { 
        [self removeChild:spr cleanup:YES]; 
        [self actionBlink]; 
       } 
      } 
     } else { 
      // partita persa 
     } 
    } 
} 

名爲「cuore.png」存在於資源文件夾中的文件,但是當我嘗試編譯後,應用程序崩潰後的splashscreen。這是日誌:

2013年2月11日19:55:06.635 QuizGame [6672:C07]的cocos2d:cocos2d的V1.0.1 2013年2月11日19:55:06.636 QuizGame [6672:C07] cocos2d:使用導演 類型:CCDirectorDisplayLink 2013-02-11 19:55:06.664 QuizGame [6672:c07] cocos2d:操作系統版本:6.1(0x06010000)2013-02-11 19:55:06.664 QuizGame [6672:c07 ] cocos2d:GL_VENDOR:Apple Computer,Inc. 2013-02-11 19:55:06.665 QuizGame [6672:c07] cocos2d:GL_RENDERER:Apple 軟件渲染器2013-02-11 19:55:06.666 QuizGame [6672:c07 ] cocos2d: GL_VERSION:OpenGL ES-CM 1.1 APPLE 2013-02-11 19:55:06.667 QuizGame [6672:c07] coc os2d:GL_MAX_TEXTURE_SIZE:4096 2013年2月11日 19:55:06.667 QuizGame [6672:C07]的cocos2d:GL_MAX_MODELVIEW_STACK_DEPTH: 16 2013年2月11日19:55:06.667 QuizGame [6672:C07]的cocos2d:GL_MAX_SAMPLES: 4 2013-02-11 19:55:06.668 QuizGame [6672:c07] cocos2d:GL支持 PVRTC:是2013-02-11 19:55:06.668 QuizGame [6672:c07] cocos2d:GL 支持BGRA8888紋理:是2013 -02-11 19:55:06.669 QuizGame [6672:c07] cocos2d:GL支持NPOT紋理:是2013-02-11 19:55:06.670 QuizGame [6672:c07] cocos2d:GL支持 discard_framebuffer:YES 2013 -02-11 19:55:06.670 QuizGame [6672:c07] cocos2d:使用NPOT支持編譯:NO 2013-02-11 19:55:06.671 QuizGame [6672:c07] cocos2d:使用VBO支持編譯t 2013年12月11日19:55:06.671 QuizGame [6672:c07] ] cocos2d:使用配置文件編譯 支持:否2013-02-11 19:55:06.695 QuizGame [6672:c07] cocos2d: CCSpriteFrameCache:未找到幀'cuore.png'2013-02-11 19:55:06.695 QuizGame [6672:C07] *在+斷言故障[CCSprite spriteWithSpriteFrameName:], /Users/alexbava/Desktop/QuizGame/QuizGame/libs/cocos2d/CCSprite.m:110 2013年2月11日19時55分: 06.696 QuizGame [6672:c07] 終止應用程序由於 未捕獲異常'NSInter nalInconsistencyException」,原因是: '無效spriteFrameName:cuore.png' * *第一擲調用堆棧:(0x2074012 0x1ca4e7e 0x2073e78 0x14e7665 0x6564e 0xc2bd7 0xc3229 0x40261 0xc1c4d 0xc12ec 0x9931af 0x9937a1 0x99494b 0x9a5cb5 0x9a6beb 0x998698 0x2d7cdf9 0x2d7cad0 0x1fe9bf5 0x1fe9962 0x201abb6 0x2019f44 0x2019e1b 0x99417a 0x995ffc 0xc0dcf 0x2665)的libC++ abi.dylib:終止叫做拋出異常(LLDB)

我想我犯了一個愚蠢的錯誤或缺少些什麼。任何人都可以幫助我嗎?

+0

接受任一答案,保持列表整齊的潛在「幫手」。 – YvesLeBorg 2013-02-11 19:41:41

+0

完成:)同時接受 – TheInterestedOne 2013-02-11 20:35:20

回答

2

您使用的CCSprite構造函數將在CCSpriteFrame緩存中查找CCSpriteFrame對象。如果您中庸之道想創建一個名爲「cuore.png」文件中的精靈使用構造函數:

CCSprite * spriteLife = [CCSprite spriteWithFile:@"cuore.png"]; 

雪碧幀通常用於動畫,或管理包含許多(有時是不相關的)紋理大紋理地圖。

+0

有用,謝謝 – TheInterestedOne 2013-02-11 19:08:19

1

spriteWithSpriteFrameName通常與CCSpriteFrameCache一起使用,請使用'spriteWithFile'。 :)

+0

It Works,謝謝 – TheInterestedOne 2013-02-11 19:09:07

+0

沒問題,乾杯。 :) – 2013-02-11 19:48:30