2015-05-19 6 views
1

Я пытаюсь создать единую игру, которая, когда вы коснетесь изображения звезды, будет загружать звездный спрайт из класса Star. У моего звездного изображения есть свой класс (StarImage), который вызывает мой метод класса StarLauncher класса Level, когда он используется с использованием метода класса классов. Проблема в том, что когда я касаюсь звезды, она называет класс класса StarLauncher, но он вообще не добавляет звездный спрайт. Он может печатать засорить сообщения, хотя ..Cocos2d не может добавить спрайт при вызове его метода из другого класса

Вот класс Уровень

 #import "Level.h" 
     #import "CCPhysics+ObjectiveChipmunk.h" 
     #import "Star.h" 
     #import "StarImage.h" 
    @implementation Level{ 


     CCPhysicsNode *_physicsNode; 

    } 
     -(void)StarLauncher{ 
      CCLOG(@"haaaaaaaaaaa"); 
      Star *_Star2=(Star*)[CCBReader load:@"Star"]; 
      [_Star2 setScale:0.5]; 
      _Star2.position=CGPointMake(160,478); 
      [_physicsNode addChild:_Star2]; 
     } 
-(void) update:(CCTime)delta{ 

    [self StarLauncher]; // when called here it will do add operation 
} 
     @end 

и вот мой StarImage класс

#import "StarImage.h" 
    #import "Level.h" 

    @implementation StarImage{ 

    } 

    - (void)didLoadFromCCB{ 

     self.userInteractionEnabled = TRUE; 

    } 

    -(void)touchBegan:(CCTouch *)touch withEvent:(CCTouchEvent *)event{ 


    } 

    -(void)touchEnded:(CCTouch *)touch withEvent:(CCTouchEvent *)event{ 
     Level *_LevelOlio=[[Level alloc]init]; 
     [_LevelOlio StarLauncher]; // it calls but the methode will only print clog 

    } 

Проблема заключается в том, что StarLauncher не будет делать операцию, добавив при вызове от StarImage, но когда я называю это в классе уровня, он работает. Что мне здесь не хватает? почему он не сделал бы тот же кусок кода, когда я его называю из другого класса? но почему он печатает глюк? Когда я отлаживаю его, он показывает, что при вызове из StarImage он запускает код, но ничего не отображается в симуляторе

ответ

0

Потому что он работает на вновь созданном уровне. Вы уверены, что хотите создать новый уровень каждый раз, когда прикосновение заканчивается экземпляром StarImage?