2015-05-19 32 views
1

我想製作一個單一的遊戲,當您觸摸星形圖像時,它會從Star類中加載一個星形精靈。我的星形圖像有自己的類(StarImage),當使用級別類方法時,它會調用我的Level類StarLauncher方法。問題是,當我觸摸星號時,它會調用級別類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,但是當我在Level類中調用它時,它確實有效......我在這裏錯過了什麼?爲什麼當我從其他類調用它時,它不會執行相同的代碼?但爲什麼它打印堵塞?當我調試它時,它顯示,當從StarImage調用它運行的代碼,但沒有出現在模擬器中

回答

0

因爲它運行在新創建的級別。每次觸摸StarImage實例時,您確定要創建一個新的關卡嗎?