从其他类

时间:2015-05-19 17:52:22

标签: objective-c cocos2d-iphone sprite spritebuilder

我正在尝试制作单个游戏,当您触摸星形图像时,它将从Star类加载星形精灵。我的星形图像有自己的类(StarImage),当使用level class方法时,它会调用我的Level类StarLauncher方法。问题是,当我触摸星星时,它会调用级别类StarLauncher方法,但它根本不会添加星级精灵。它可以打印堵塞消息..

这是Level类

     #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调用时它运行代码但模拟器中没有任何内容

1 个答案:

答案 0 :(得分:0)

因为它在新创建的级别上运行。每次触摸在StarImage实例上结束时,您确定要创建新级别吗?