Cocos2d не может добавить спрайт при вызове своего метода из другого класса

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

Вот класс уровня

     #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 он запускает код, но в симуляторе ничего не появляется.


person Shahins    schedule 19.05.2015    source источник


Ответы (1)


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

person s1ddok    schedule 27.05.2015