等待场景 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;
}