Im здесь, чтобы задать какой-то вопрос noobish, Im учиться кататься с cocos2d.Cocos2D - Общение между слоями
Мой вопрос: как наилучшим образом (и как) общаться между слоями со сценой?
Например.
У меня есть слой, где у меня есть спрайт с кнопкой, есть слой со строкой.
Каждый раз, когда я нажимаю кнопку, строка должна идти +1. (Так что если Вы нажимаете 3 раза, то строка будет равна 3.)
У меня это так:
Scene.m
-(id)init {
self = [super init];
if(self != nil){
//button Layer
buttonLayer *buttonLayer = [buttonLayer node];
[self addChild:buttonLayer z:0];
//Gameplay Layer :D
stringLayer *numberStringLayer = [stringLayer node];
[self addChild:numberStringLayer z:2];
}
}
buttonLayer.m
-(id)init {
int xPosition = 385;
int yPosition = 75;
_button = [CCMenuItemImage itemWithNormalImage:@"button.png"
selectedImage:@"button.png"
target:self selector:@selector(checkButton:)];
_button.tag =0;
_button.position = ccp(xPosition,yPosition);
_buttonMenu = [CCMenu menuWithItems:_button, nil];
_buttonMenu.position = CGPointZero;
[self addChild:_buttonMenu];
}
-(void)checkButton:(id)sender {
NSLog(@"Button Pressed");
buttonPressedCount =+;
//Here goes algorithm that interacts with scene/layer
}
stringLayer.m
-(id)init {
self = [super init];
if (self != nil) {
_numberString = [CCLabelTTF labelWithString:@"0" fontName:@"Marker Felt" fontSize:18.0];
_numberString.color = ccc3(0,0,0);
_numberString.position = ccp(125,300);
[self addChild:_numberString];
}
return self;
}
-(void)updateStringWithNumber:(int)tempNumb {
_numberString.string = tempNumb; //or something like that....
}
Итак ... где/как я могу использовать переменные и как/где я могу их получить или вызвать?
Спасибо за ваше время! : D Отличный день!
http://www.learn-cocos2d.com/files/cocos2d-essential-reference-sample/Strategies_for_Accessing_Other_Nodes.html – LearnCocos2D
Какой из этих вариантов вы бы выбрали? UILayer * tempLayer = [scene sharedGameScene] .stringLayer; [tempLayer updateString]; ??? Если да, то где/как его использовать? – user1876553
@ LearnCocos2D Я пробовал делать теги ChildBy, но я просто не знал, как это сделать. Пробовал это на сцене.m "stringLayer * numberStringLayer = [узел stringLayer]; [self addChild: numberStringLayer z: 2 tag: 113];" и это, когда пользователь нажимает кнопку: «CCNode» otherNode = [stringLayer.parent_ getChildByTag: 113]; [otherNode updateLabel]; " – user1876553