2012-02-22 3 views
3

다음 코드 줄을 어떻게 줄일 수 있는지 알고 싶습니다. 나는 여전히 objective-c/cocos2D에서 상당히 새롭고 다음 코드는 열차 사고처럼 보입니다. PHP라면,이 모든 것들을 얻기 위해 쉽게 루프를 만들 수 있습니다. 그러나 obj-c에 익숙하지 않은 것만으로도 알아낼 수 있습니다.Objective-C/Cocos2D 코드 반복 반복

dinosaur1_c = [CCSprite spriteWithSpriteFrameName:@"dinosaur1-c.png"]; 
    dinosaur2_c = [CCSprite spriteWithSpriteFrameName:@"dinosaur2-c.png"]; 
    dinosaur3_c = [CCSprite spriteWithSpriteFrameName:@"dinosaur3-c.png"]; 
    dinosaur4_c = [CCSprite spriteWithSpriteFrameName:@"dinosaur4-c.png"]; 
    dinosaur5_c = [CCSprite spriteWithSpriteFrameName:@"dinosaur5-c.png"]; 
    dinosaur6_c = [CCSprite spriteWithSpriteFrameName:@"dinosaur6-c.png"]; 
    dinosaur7_c = [CCSprite spriteWithSpriteFrameName:@"dinosaur7-c.png"]; 
    dinosaur8_c = [CCSprite spriteWithSpriteFrameName:@"dinosaur8-c.png"]; 
    dinosaur9_c = [CCSprite spriteWithSpriteFrameName:@"dinosaur9-c.png"]; 
    dinosaur10_c = [CCSprite spriteWithSpriteFrameName:@"dinosaur10-c.png"]; 
    dinosaur11_c = [CCSprite spriteWithSpriteFrameName:@"dinosaur11-c.png"]; 

    [sceneSpriteBatchNode addChild:dinosaur1_c]; 
    [sceneSpriteBatchNode addChild:dinosaur2_c]; 
    [sceneSpriteBatchNode addChild:dinosaur3_c]; 
    [sceneSpriteBatchNode addChild:dinosaur4_c]; 
    [sceneSpriteBatchNode addChild:dinosaur5_c]; 
    [sceneSpriteBatchNode addChild:dinosaur6_c]; 
    [sceneSpriteBatchNode addChild:dinosaur7_c]; 
    [sceneSpriteBatchNode addChild:dinosaur8_c]; 
    [sceneSpriteBatchNode addChild:dinosaur9_c]; 
    [sceneSpriteBatchNode addChild:dinosaur10_c]; 
    [sceneSpriteBatchNode addChild:dinosaur11_c]; 

모든 입력 사항을 매우 높이 평가합니다. 나는이 같은 NSMutableArray으로 이러한 개체를 관리하는 것이 좋습니다

+1

가'인스턴스 변수를 dinosaur1_c' 있는가, 또는 그들이 임시직입니까? – dasblinkenlight

+0

그들은 인스턴스 변수입니다. – rizzlerazzle

답변

4

:

NSMutableArray *sprites = [[NSMutableArray alloc] init]; 
for (int i = 1; i <= 11; i++) { 
    id dino = [CCSprite spriteWithSpriteFrameName:[NSString stringWithFormat:@"dinosaur%d-c.png",i]]; 
    [sprites addObject:dino]; 
    [sceneSpriteBatchNode addChild:dino]; 
} 

// Since I don't know what your addChild: method does, the 'sprites' array exists to let you access the objects later, outside of the 'for' loop if desired... 
// So where you would've used dinosaur4_c before, you would instead use [sprites objectAtIndex:4] 
// This also demonstrates how to cast the return value from -objectAtIndex: to a CCSprite * 
CCSprite *certainDino = (CCSprite *)[sprites objectAtIndex:4]; 

// Then, when done working with the sprites 
[sprites release]; 
+0

C-Array (또는 CCArray)를 사용하지 않는 이유는 무엇입니까? 연결된 목록보다 빠릅니다. –

+0

'스프 라이트'에 아무 것도 추가하지 마십시오 –

+0

@JimRhodes Thanks; 결정된! – bneely