0

私は自分のシーンにレイヤーを入れようとしています。私のシーンは「サバイバル」と呼ばれています。私のレイヤーは「SSpriteLayer」と呼ばれます。シーンは初期化されますが、レイヤーは初期化されません。

サバイバル.H:

#import <Foundation/Foundation.h>
#import "cocos2d.h"
#import "SSpriteLayer.h"

@interface Survival : CCLayer {}
@end

サバイバル.M:

@implementation Survival

+(CCScene *) scene
{
   // 'scene' is an autorelease object.
   CCScene *scene = [CCScene node];

   // 'layer' is an autorelease object.
   Survival *layer = [Survival node];
   SSpriteLayer *spriteLayer = [SSpriteLayer node];

   // add layer as a child to scene
   [scene addChild: layer];
   [scene addChild: spriteLayer];

   // return the scene
   return scene;
}

-(id) init
{
   if( (self=[super init]))        
       NSLog(@"SCENE HAS INIT");

   return self;
}

@end

SSPRITELAYER.H:

#import <Foundation/Foundation.h>
#import "cocos2d.h"

@interface SSpriteLayer : CCLayer {

}

@end

SSPRITELAYER.M:

#import "SSpriteLayer.h"


@implementation SSpriteLayer

-(id) init
{
   if( (self=[super init]))         
       NSLog(@"SPRITELAYER HAS INIT");  

   return self;
}


@end

レイヤーが初期化されない理由と、デバッグ領域に「SPRITELAYER HAS INIT」というメッセージが表示されない理由がわかりません。

4

2 に答える 2

0
  // add layer as a child to scene
  [self addChild: layer];
  [self addChild: SpriteLayer];

変更して試す

于 2012-02-25T11:13:04.200 に答える
0

電話することを確認してください

[Survival scene];

いいえ

[Survival node];

ここでシーンを呼び出してコードを投稿します

于 2012-02-27T12:35:05.417 に答える