質問

私は私のシーンにレイヤーを取得しようとしています。私のシーンは「生存」と呼ばれます。私のレイヤーは "SSPriteLayer"と呼ばれます。シーンは初期化されていますが、レイヤはそうではありません。

サバイバル.h:

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

@interface Survival : CCLayer {}
@end
.

サバイバル。

@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がinit"を持っていないという理由があります。

役に立ちましたか?

解決

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

変更してを試してみてください

他のヒント

必ずあなたが呼び出すことを確認してください

[Survival scene];
.

NOT

[Survival node];
.

あなたのシーンを呼び出すとポストコード

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top