2015-05-19 28 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实例时,您确定要创建一个新的关卡吗?