2009-05-21 4 views
1

배열에 스프라이트를 추가하려고하면 캐치되지 않는 예외 오류가 발생하며 모든 것이 정상적으로 보입니다. MonocleStudios Simplegame 프로젝트를 사용하고 있습니다. 이 경우, 다음Cocos2d : 배열에 스프라이트를 추가하면 캐치되지 않는 예외로 종료되는 응용 프로그램이 발생합니다.

The .m file:

@implementation GameScene 

- (id) init { 
    self = [super init]; 
     if (self != nil) { 

     Sprite * bg = [Sprite spriteWithFile:@"game.png"]; 
     [bg setPosition:ccp(240, 60)]; 
     [self addChild:bg z:0]; 
     [self addChild:[GameLayer node] z:1]; 
     Sprite * bg1 = [Sprite spriteWithFile:@"game.png"]; 
     [bg1 setPosition:ccp(211, 260)]; 
     [self addChild:bg1 z:0]; 
     //the above works fine! 
     Sprite * bgX[50]; 
     //if comment out the next 3 lines, everything runs but I get an "unused variable" warning 
     bgX[0] = [Sprite spriteWithFile:@"mytree.png"]; 
     [bgX[0] setPosition:ccp(240,150)]; 
     [self addChild:bgX[0] z:0]; 
    } 
    return self; 
} 

@end 

답변

0

이 (적인 Cocos2D 0.7.3을 잘 작동이 monoclestudios 컴/정적/simplegame.zip에게 점에 대한

코드는 매우 단정해야한다 2.1 SDK의 문제) :

Sprite *sprites[SPRITE_COUNT]; 
for(int i = 0; i < SPRITE_COUNT; i++) { 
    sprites[i] = [Sprite spriteWithFile:@"file.png"]; 
    [sprites[i] setPosition: ccp(0, 0)]; 
    [self addChild: sprites[i] z:0]; 
} 
+0

그게 효과가 있습니다. David 감사합니다! – Xeno

+0

다른 함수에서이 스프라이트를 어떻게 사용합니까? "NSTimer scheduledTimerWithTimeInterval : 0.05 타겟 : 셀렉터 : @selector (MyFunction) userInfo : nil 반복 : YES];" Sprite를 선언 한 후 MyFunction에서 스프라이트를 호출하려고 할 때 sprite [0] setPosition : ccp (100,100); 정의되지 않은 오류가 발생합니다. 스프라이트를 어디에서 정의하여 전역으로 사용할 수 있습니까? (또는 최소한 구현 파일까지). sprite * sprites [50]를 두어 보았습니다. 몇 가지 헤더 파일에 있지만 구현 파일에서 구문 오류를 얻을 것이다. – Xeno

+0

충분히 고정 간단! – Xeno