【问题标题】:Adding a Layer to a Scene does not work将图层添加到场景不起作用
【发布时间】:2012-02-24 07:42:53
【问题描述】:

我一直在尝试在我的场景中添加一个图层。我的场景叫做“生存”。我的图层称为“SSpriteLayer”。场景初始化,但图层没有。

生存.H:

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

@interface Survival : CCLayer {}
@end

SURVIVAL.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”消息。

【问题讨论】:

  • 有什么问题?另外,“我已经导入了 SurvivalHudLayer.h” 是什么意思?可以发一些代码吗?
  • @sch 问题是我的层没有初始化,它没有出现,我从来没有收到消息“HUD LAYER HAS INIT”。将lay导入游戏场景的代码现在有问题了。
  • 什么是Survival,你能贴出代码吗?另外,您的代码是否实际编译,或者它与您在此处发布的代码不同?
  • 好吧,生存只是游戏场景。我的游戏中有几种不同的游戏模式,这一种叫做生存
  • @sch 我已重新格式化问题,提供更多信息。不过,我已经更改了图层的名称。

标签: ios cocos2d-iphone subclass layer scene


【解决方案1】:
  // add layer as a child to scene
  [self addChild: layer];
  [self addChild: SpriteLayer];

改变它并尝试

【讨论】:

    【解决方案2】:

    请确保您致电

    [Survival scene];
    

    不是

    [Survival node];
    

    并在此处调用您的场景并发布代码

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-05
      • 1970-01-01
      相关资源
      最近更新 更多