2012-10-31 2 views
2

현재 작업중인 게임의 gamelayer에 여러 애니메이션 스프라이트를 추가하려고합니다. 분젠 및 추가해야합니다 모든 분젠 내가이 루프를 실행합니다 : 나는 인스턴스 스프라이트를 생성 한이 작업을 수행 할 수있는 수준에서 하나의 분젠이있는 경우여러 Sprite 애니메이션하기 Cocos2d

else if (blockValue == 2 || blockValue == 3 || blockValue == 4 || blockValue == 5) { 
       bunsen = [CCSprite spriteWithSpriteFrameName:@"15_1.png"]; 
       if (blockValue == 2) { 
        bunsen.rotation = 90; 
       } 
       else if (blockValue == 3) { 
        bunsen.rotation = 180; 
       } 
       else if (blockValue == 4) { 
        bunsen.rotation = 270; 
       } 
       float tileY = screenSize.height-((countery*startData4)+startData4/2+7.5)/2; 
       float tileX = ((counterx*startData4)+startData4/2+5)/2; 
       bunsen.position = ccp(tileX,tileY); 
       tileName = [NSString stringWithFormat:@"%i.png",blockValue]; 
       [bunsen runAction:bunsens]; 
       [bunsenAnimation addChild:bunsen]; 

      } 

이있다 그러나 때, 잘 작동

else if (blockValue == 2 || blockValue == 3 || blockValue == 4 || blockValue == 5) { 
       CCSprite *bunsen = [CCSprite spriteWithSpriteFrameName:@"15_1.png"]; 
       if (blockValue == 2) { 
        bunsen.rotation = 90; 
       } 
       else if (blockValue == 3) { 
        bunsen.rotation = 180; 
       } 
       else if (blockValue == 4) { 
        bunsen.rotation = 270; 
       } 
       float tileY = screenSize.height-((countery*startData4)+startData4/2+7.5)/2; 
       float tileX = ((counterx*startData4)+startData4/2+5)/2; 
       bunsen.position = ccp(tileX,tileY); 
       tileName = [NSString stringWithFormat:@"%i.png",blockValue]; 
       [bunsen runAction:bunsens]; 
       [bunsenAnimation addChild:bunsen]; 

      } 

NB 로컬 선언 : 추가 된 더 이상, 마지막 분젠은 애니메이션, 나는 이전의 모든 분젠 인스턴스 그래서 난 다음에 코드를 변경 다시 [CCSprite spriteWithSpriteFrameName:@"15_1.png"];로 설정 얻을 때문입니다 있으리라 믿고있어 이번에는 분젠의 모든 결과는 애니메이션이되는 스프라이트가 아닙니다 ... 그리고 내가 시작하기 전에 bunsen = [CCSprite spriteWithSpriteFrameName:@"15_1.png"];을 움직이면 f else else if loop 그런 다음 오류가 발생합니다. 자식이 이미 추가되었거나 그 행을 따르는 것이므로 기본적으로 내가 할 수 있어야하는 것은 Bunsen을 다시 선언하는 것이므로 자식을 던지지 않도록 이미 작업을 중단하지 않고 오류를 추가합니다 ' 이전에 추가 된 분젠 (bunsen)에 '번즈 (bunsens)'를 붙 였지만,이 일을하는 쉬운 방법을 생각할 수 없다.

+0

runAction:bunsens 

을 변경합니다. –

+0

TYVM이 완벽하게 작동 했으므로 답변으로 게시하고 올바르게 표시하겠습니다. – simonthumper

답변

1

두 개 이상의 노드에서 동일한 작업을 실행할 수 없습니다. 그냥 [bunsens 복사]에 변경 "bunsens"를 시도해 볼 수도 있습니다, 당신은 하나 개 이상의 노드에서 동일한 작업을 실행할 수 없습니다

runAction:[bunsens copy] 
+0

'복사'의 성능에 미치는 영향은 무엇입니까? – MrDatabase

관련 문제