1

Привет, я пытаюсь сделать игру в cocos2d-swift, что я пытаюсь получить, когда пользователь нажимает на экран, а затем два CCSprites, которые находятся на экране, останавливаются и удалите их со сцены. Как только они удаляют одинаковые точные спрайты, они снова появляются, но имеют случайный шанс стать 3 другими спрайтами (все свойства, кроме цвета и типа). Проблема в том, что у меня все, что работает, код выполняется в правильных областях, но спрайты не появляются на iphone.CCSprite не появляется на экране, когда в действии/блоке

Вот основной код для замены существующих спрайтов.

- (void)resetPerimeterShape { 

[baseShape removeFromParent]; 
[innerShape removeFromParent]; 

id resetAction = [CCActionCallBlock actionWithBlock:^(void){ 

     baseShape = [CCSprite spriteWithImageNamed:baseShapeShape]; 
    baseShape.position = ccp(self.contentSizeInPoints.width/2,self.contentSizeInPoints.height/2); 
    baseShape.color = baseShapeColor; 
    baseShape.rotation = shapeZRotation; 
    [baseShape setScale:baseShapeSize]; 
    [self addChild:baseShape]; 

    innerShape = [CCSprite spriteWithImageNamed:innerShapeShape]; 
    innerShape.position = ccp(self.contentSize.width/2,self.contentSize.height/2); 
    innerShape.color = innerShapeColor; 
    innerShape.rotation = shapeZRotation; 
    [innerShape setScale:baseShapeSize]; 
    NSLog(@"starting"); 
    //this is running and outputting so i am 100% sure this function is called. 
    [self addChild:innerShape]; 
    NSLog(@"done"); 




}]; 
id reRunAction = [CCActionCallBlock actionWithBlock:^(void){ 
    //endsscene wip 
}]; 



[self runAction:[CCActionSequence actionWithArray:@[resetAction,reRunAction]]]; 

} 

Это фрагмент кода, в котором он называется.

else{ 
       //[self runAction:self.sounds]; 
       NSString *A = [self randomShape]; 
       NSString *B = [self randomShape]; 

       if ([A isEqualToString:B]) { 
        baseShapeShape = A; 
        innerShapeShape = A; 

       } 
       else { 
        baseShapeShape = @"SQUARE (1).png"; 
        innerShapeShape = B; 

       } 


       innerShapeColor = [self randomColor]; 
       baseShapeColor = [self randomColor]; 
       shapeZRotation = [self randomRotation]; 
       [self resetPerimeterShape]; 
       nap = true; 

      } 

ответ

0

Вы забыли запустить мероприятие? Например:

[self runAction:resetAction]; 
+0

Я побежал в нижней части первого кода я побежал в массиве последовательности. – nmwood

0

нашел решение я Scaleing спрайта на 0, так что в принципе не обнаруживалось

Смежные вопросы