0

在我的中,我定义了一个这样的 CCLayer:

@interface MyLayer : CCLayer {
    CCLayer * referenceLayer; 
}

我应该如何声明它以在 +(CCScene *) 场景中使用它?

像这样 ?

@property (nonatomic, retain) CCLayer *referenceLayer;
4

1 回答 1

1

由于 + (id)scene是类方法,因此您无法从其中访问 ivar/属性。一种可能的解决方案是在您的 layer.m 文件中包含一个静态变量,如以下代码段所示:

static CCScene* _scene = nil;

+ (id)scene {
   if (_scene == nil) {
      _scene = [[CCScene node] retain];
      //-- further scene initializaion
   }
   return _scene;
 }

这种简单的方法有一个缺点:周围只能有一个这样的层。

于 2012-02-02T17:54:26.440 回答