访问其他图层上的信息

时间:2013-05-08 17:45:41

标签: cocos2d-iphone

我有两层,游戏和hudlayer。 Hud位于HelloWorldLayer之上。

我有一个按钮,我按下该按钮重新加载hudlayer,这只是屏幕上显示的数字,用于捕捉游戏中的内容。

buttonTapped:在HudLayer(在HelloWorldLayer之前)实现。

HudLayer和HelloWorldLayer在同一个文件helloorldlayer.m上

我按下按钮并:

    - (void)buttonTapped:(id)sender
    {
        int number = 6;

    //Heres the problem
       //I dont know how to change this part...

        [[HelloWorldLayer]->changedNumber = Number; ///How do I give changedNumber     Number's value?????


        _label.string = [NSString stringWithFormat:@"Number: %d",number];


    }

HelloWorldLayer有一个属性:

    @property (assign) int changedNumber;

2 个答案:

答案 0 :(得分:0)

听起来你的发件人是HelloWorldLayer。

您可以尝试:

sender.changedNumber = Number;

答案 1 :(得分:0)

试试这个:

CCArray* layers = [[CCDirector sharedDirector] runningScene].children;

for(int i=0; i<[layers count]; i++)
{
    CCNode *node = [layers objectAtIndex:i];

    if ([node isKindOfClass:[HelloWorldLayer class])
    {
        HelloWorldLayer *obj = (HelloWorldLayer*)node;
        obj.changedNumber = Number;
        break;
    }
}