cocos2d Loading的处理

(id) init
{
self = [super init];
if ( self )
{
// Add the Label (in cocos2D universe)

BitmapFontAtlas *label = [BitmapFontAtlas
bitmapFontAtlasWithString: @"Initializing Game"
fntFile: @"comic_atlas.fnt"
alignment: UITextAlignmentCenter];

label.position = ccp(240, 160);

label.opacity = 0;

[self addChild: label z: 0 tag: kInitializingLabel];

// Add the UIActivityIndicatorView (in UIKit universe)

self.activityIndicatorView = [[[UIActivityIndicatorView alloc]
initWithActivityIndicatorStyle:
UIActivityIndicatorViewStyleWhiteLarge] autorelease];

activityIndicatorView.center = ccp(190,240);

[activityIndicatorView startAnimating];

[[self battleView] addSubview: activityIndicatorView];

[self schedule: @selector(loadingInit)];

// At this point, the cocos2d rendering is fine.
}
return self;
}

- (void) loadingInit
{
[self unschedule: @selector(loadingInit)];

// Fade in nicely
BitmapFontAtlas *label = (BitmapFontAtlas*)[self getChildByTag: kInitializingLabel];
[label runAction: [FadeIn actionWithDuration: .25]];

[self schedule: @selector(loadingStep0) interval: .25];
}

- (void) loadingStep0
{
[self unschedule: @selector(loadingStep0)];

// Add you own code to load texture, sounds etc...

// The cocos2D thread will be waiting (since it's the same as
the main thread) but the UIKit thread will keep running in parallel
// Can do multiple steps or just one
[self schedule: @selector(loadingStep1) interval: .5];
}

- (void) loadingStep1
{
[self unschedule: @selector(loadingStep1)];

// Add you own code to load texture, sounds etc...
[self schedule: @selector(loadingDone) interval: .1];
}

- (void) loadingDone
{
gameIsReady = YES;
[self.activityIndicatorView removeFromSuperview];

BitmapFontAtlas *label = (BitmapFontAtlas*)[self getChildByTag: kInitializingLabel];
[label setString: NSLocalizedString(@"Tap to start!", nil)];
[label runAction: [RepeatForever actionWithAction:
[Sequence actionOne: [EaseInOut actionWithAction:
[MoveTo actionWithDuration: .6 position: ccp(210, 160)] rate: 2]
two: [EaseInOut actionWithAction:
[MoveTo actionWithDuration: .6 position: ccp(270, 160)] rate: 2]
]
]
];
}

- (BOOL)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
if ( gameIsReady )
{
[self openGame];
}
return kEventHandled;
}


http://stackoverflow.com/questions/1133123/multi-threaded-opengl-programming-in-cocos2d-iphone
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值