1

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

我有一个按钮,我按下它可以重新加载 hudlayer,它只是显示在屏幕上的数字,以捕捉游戏中的内容。

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

HudLayer 和 HelloWorldLayer 在同一个文件中,即 helloworldlayer.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;
4

2 回答 2

0

Try this:

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;
    }
}
于 2013-05-08T18:40:55.493 回答
0

听起来您的发件人是 HelloWorldLayer。

你可以试试:

sender.changedNumber = Number;
于 2013-05-08T18:07:55.490 回答