您的位置:首页 > 移动开发 > Cocos引擎

[iphone-cocos2d]关于Loading的若干处理和讨论

2010-05-05 17:13 260 查看
找了些关于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;

}

2。

CGRect texRect = CGRectMake( (barPngWidth/2)*(1-loadPercentage), 0, barPngWidth/2, barPngHeight);
[barAtlasSprite setTextureRect:textRect];

My [code]loadPercentage
var should be comprised between 0 and 1.
You definitely don't have to use an animation nor the setDisplayFrame function.

3。http://stackoverflow.com/questions/1133123/multi-threaded-opengl-programming-in-cocos2d-iphone

[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: