ios - Can't Access Function from another Class in Cocos2D -


i've implemented 3 classes.

-scene.m & .h

scene.m: (has hudlayer & backgroundlayer properties on header file)

    -(id)init{          self = [super init];        if(self != nil){     //level1layer              _level1gameplaylayer = [level1layer node];             [self addchild:_level1gameplaylayer z:0];      //hud layer             _hudlayer = [hudlayer node];             [self addchild:_hudlayer z:1];         }       return self;    } 

-which holds these 2 layers

backgroundlayer.m & .h && hudlayer.m & .h

everytime click screen log notice "touched screen"(called on backgroundlayer.m) followed function implemented on hudlayer.m & .h

i call this:

    [_hud getammo:self.ammoleft magsleft:self.magsleft]; 

_hud stated on scene.m this:(and imported on backgroundlayer.m)

    hudlayer *hudlayer = [hudlayer node];     [self addchild:hudlayer z:1]; 

background z:0.

also backgroundlayer.m has property under @interface: (i realized nil because not initialized, how initialize this???)

    @property (strong) hudlayer *hud; 

between call of getammo: make 3 clogs, 1 before "we're getammo:"

one inside function on hudlayer.m calls "inside getammo:"

and 1 after "we gottheammo:"

backgroundlayer.m:

    cclog(@"we're getammo");     _hud getammo:self.ammoleft magsleft:self.magsleft];     cclog(@"we got ammo:%d, mags:%d",self.ammoleft,self.magsleft); 

hudlayer.m:

    -(void)getammo:(int)ammo magsleft:(int)magsleft      {         cclog(@"we did this");        hudmagsleft=magsleft;        hudammoleft = ammo;        cclog(@"hud mags: %d, ammo:%d", hudmagsleft,hudammoleft);      } 

im getting 1 before , 1 after, there's no warnings on way function being called reason isn't being called. there's no if statements or anything..what im doing wrong???

so make question more simple, how access properties/functions other classes?

thank time, have one.

on scene.h added function:

    -(id)initwithhud:(hudlayer *)hud; 

then on scene.m made this:

    _backgroundlayer = [[[backgroundlayer alloc] initwithhud:_hudlayer] autorelease]; 

on backgroundlayer.m changed regular init with

    -(id)initwithhud:(hudlayer *)hud{ 

:d


Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

delphi - Dynamic file type icon -