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

cocos2d游戏暂停页面的实现

2012-07-13 12:11 381 查看
#import<Foundation/Foundation.h>
#import"cocos2d.h"

@interfacePauseLayerProtocol:CCNode

-(void)pauseLayerDidPause;
-(void)pauseLayerDidUnpause;

@end

@interfacePauseLayer:CCLayerColor
{
PauseLayerProtocol*delegate;
}

@property(nonatomic,assign)PauseLayerProtocol*delegate;

+(id)layerWithColor:(ccColor4B)colordelegate:(PauseLayerProtocol*)_delegate;
-(id)initWithColor:(ccColor4B)cdelegate:(PauseLayerProtocol*)_delegate;
-(void)pauseDelegate;

@end


#import"PauseLayer.h"

@implementationPauseLayer
@synthesizedelegate;

+(id)layerWithColor:(ccColor4B)colordelegate:(id)_delegate
{
return[[[selfalloc]initWithColor:colordelegate:_delegate]autorelease];
}

-(id)initWithColor:(ccColor4B)cdelegate:(id)_delegate
{
self=[superinitWithColor:c];
CGSizewins=[[CCDirectorsharedDirector]winSize];
delegate=_delegate;
[selfpauseDelegate];
if(self!=nil)
{
CCSprite*background=[CCSpritespriteWithSpriteFrameName:@"background.png"];
[selfaddChild:background];

CCSprite*backBtn=[CCSpritespriteWithSpriteFrameName:@"back.png"];
CCSprite*resumeGameBtn=[CCSpritespriteWithSpriteFrameName:@"newBegin.png"];
CCMenuItemImage*back=[CCMenuItemImageitemFromNormalSprite:backBtn
selectedSprite:nil
target:self
selector:@selector(goBack:)];
CCMenuItemImage*resumeGame=[CCMenuItemImageitemFromNormalSprite:resumeGameBtn
selectedSprite:nil
target:self
selector:@selector(resumeGame:)];
CCMenu*menu=[CCMenumenuWithItems:back,resumeGame,nil];
[menusetPosition:ccp(0,0)];

[backsetPosition:ccp([backgroundboundingBox].size.width/2,[backgroundboundingBox].size.height*0.75)];
[resumeGamesetPosition:ccp(back.position.x,back.position.y-40)];

[backgroundaddChild:menu];
[backgroundsetPosition:ccp(wins.width*0.5,wins.height*0.5)];
}
returnself;
}

-(void)pauseDelegate
{
if([delegaterespondsToSelector:@selector(pauseLayerDidPause)])
[delegatepauseLayerDidPause];
[delegateonExit];
[delegate.parentaddChild:selfz:10];
}

-(void)goBack:(id)sender
{
[delegateonEnter];
if([delegaterespondsToSelector:@selector(pauseLayerDidUnpause)])
[delegatepauseLayerDidUnpause];
[self.parentremoveChild:selfcleanup:YES];
}

-(void)resumeGame:(id)sender
{
[selfperformSelector:@selector(goBack:)];

GameScene*gameScene=[GameScenesharedGameScene];
[gameSceneremoveAllChildrenWithCleanup:YES];
[gameSceneresetGame];
}

-(void)dealloc
{
[superdealloc];
}

@end    

游戏界面的调用

-(void)doPause

{

[GameCoversetIsGameCoverPressed:NO];

ccColor4Bc={0,0,0,150};

[PauseLayerlayerWithColor:cdelegate:(PauseLayerProtocol*)];

}


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