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
Post a Comment