Cocos2d_code fragment(1)

来源:互联网 发布:连接阿里云服务器 编辑:程序博客网 时间:2024/06/05 11:39

等待场景 LoadingScene

LoadingScene.h

typedef enum

{

            TargetSceneINVALID = 0,

            TargetSceneFirstScene,

            TargetSceneOtherScence,

            TargetSceneMAX,

}

@interface LoadingScene : CCScene

{

            TargetScenes  targetScene_;

}

 

+( id) SceneWithTargetScene : (TargetScenes) targetScene;

-( id) initWithTargetScene : (TargetScenes) targetScene;

 @end

 

LoadingScene.m

+( id) SceneWithTargetScene : (TargetScenes) targetScene

{

        return [[self alloc] initWithTargetScene : targetScene ] autorelease];

}

-( id) initWithTargetScene : (TargetScenes) targetScene

{


         if((self = [super init]))
         {
                  targetScene_ = targetScene;
                 CClabel *label = [CClabel labelWithString:@"Loading ..."
                                                               fontName:@"Marker Felt"
                                                               fontSize:32];
                  CGSize size = [[CCDirector shareDirector]winSize];
                  Label.position = CGPointMake (size.width *0.5, size.height * 0.5);
                  [self addChild :label];

                  //下一帧才加载目标场景
                 [self scheduleUpdate];
        }
 return self;
}

-(void ) update: (ccTime)delta
{
         [self unscheduleAllSelectors];
         switch (targetScene_)
        {
                 case TargetSceneFirstScene:
                           [[CCDirector sharedDirector] replaceScene:[FirstScene scene]];
                         break;

                 case TargetSceneOtherScene:
                          [[CCDirector sharedDirector] replaceScene:[OtherScene scene]];
                        break;

                 default:

                          //如果使用没有指定的枚举类型,发出警告
                          NSAssert(nil,@"%@: unsupported TargetScene %i",NSStringFromSelector(_cmd),targetScene_);
                        break;
 }

 

原创粉丝点击