读书人

守卫者游戏开发课程之cocos2d-iphone2

发布时间: 2013-03-17 13:48:31 作者: rapoo

守卫者游戏开发教程之cocos2d-iphone2.0

守卫者教程第一部分

不知道大家玩过这款魔幻塔防游戏没,我感觉很经典,就自己做了一个ios版的

我们先来说一下我们这款游戏的主要界面

1、游戏菜单场景

守卫者游戏开发课程之cocos2d-iphone2.0

2、选择游戏场景

守卫者游戏开发课程之cocos2d-iphone2.0

3、研究场景

守卫者游戏开发课程之cocos2d-iphone2.0

4、游戏场景

守卫者游戏开发课程之cocos2d-iphone2.0


我们的教程第一部分是要添加菜单场景。

首先我们基于cocos2d2.0建一个项目项目名称为守卫者,建成之后直接把HelloWorldLayer和IntroLayer都删除掉,这里我们用不到。

然后我们在项目中添加两个类SceneManager(场景管理器)和MenuLayer(菜单场景层),首先我们来创建我们的菜单场景界面。

我们在MenuLayer.m中添加初始化方法:

#pragma mark - 场景的基本方法

//初始化init方法

-(id) init

{

if ((self = [superinit]))

{

CGSize size = [[CCDirectorsharedDirector]winSize];

//菜单背景

CCSprite *sp = [CCSpritespriteWithFile:@"cover.jpg"];

sp.position =ccp(size.width/2, size.height /2);

[selfaddChild:spz:0tag:1];


//建立开始菜单

CCMenuItemImage *newGame = [CCMenuItemImageitemWithNormalImage:@"cover_button_start_up.png"selectedImage:@"cover_button_start_down.png"target:selfselector:@selector(onStart)];

CCMenu *menu1 = [CCMenumenuWithItems:newGame,nil];

[selfaddChild:menu1];

menu1.position =ccp(size.width-50, size.height -97);

//建立成就菜单

CCMenuItemImage *honor = [CCMenuItemImageitemWithNormalImage:@"cover_button_honor_up.png"selectedImage:@"cover_button_honor_down.png"target:selfselector:@selector(onHonor)];

CCMenu *menu2 = [CCMenumenuWithItems:honor,nil];

[selfaddChild:menu2];

menu2.position =ccp(size.width-58, size.height -158);

//建立开始菜单

CCMenuItemImage *more = [CCMenuItemImageitemWithNormalImage:@"cover_button_more_up.png"selectedImage:@"cover_button_more_down.png"target:selfselector:@selector(onStart)];

CCMenu *menu3 = [CCMenumenuWithItems:more,nil];

[selfaddChild:menu3];

menu3.position =ccp(size.width-73, size.height -213);

//建立成就菜单

CCMenuItemImage *share = [CCMenuItemImageitemWithNormalImage:@"cover_button_share_up.png"selectedImage:@"cover_button_share_down.png"target:selfselector:@selector(onHonor)];

CCMenu *menu4 = [CCMenumenuWithItems:share,nil];

[selfaddChild:menu4];

menu4.position =ccp(size.width-79, size.height -265);

//建立背景音乐开关菜单

CCMenuItem *musicOn = [CCMenuItemImageitemWithNormalImage:@"zzz_button_music_on.png"selectedImage:@"zzz_button_music_on.png"target:selfselector:nil];

CCMenuItem *musicOff = [CCMenuItemImageitemWithNormalImage:@"zzz_button_music_off.png"selectedImage:@"zzz_button_music_off.png"target:selfselector:nil];

CCMenuItemToggle *musicOnOff = [CCMenuItemToggleitemWithTarget:selfselector:@selector(onHonor)items:musicOn,musicOff,nil];

CCMenu *menu5 = [CCMenumenuWithItems:musicOnOff,nil];

[selfaddChild:menu5];

menu5.position =ccp(60,180);

//建立游戏音效开关菜单

CCMenuItem *soundOn = [CCMenuItemImageitemWithNormalImage:@"button_sound_on.png"selectedImage:@"button_sound_off.png"target:selfselector:nil];

CCMenuItem *soundOff = [CCMenuItemImageitemWithNormalImage:@"button_sound_off.png"selectedImage:@"button_sound_on.png"target:selfselector:nil];

CCMenuItemToggle *soundOnOff = [CCMenuItemToggleitemWithTarget:selfselector:@selector(onHonor)items:soundOn,soundOff,nil];

CCMenu *menu6 = [CCMenumenuWithItems:soundOnOff,nil];

[selfaddChild:menu6];

menu6.position =ccp(90,175);

}

return self;

}

然后再添加菜单项的响应方法:

#pragma mark - 菜单事件

//进入游戏

-(void) onStart

{

[SceneManager goStart];

}

//进入成就榜

-(void) onHonor

{

return;

}

//关于游戏

-(void) onMore

{

return;

}

//分享成就

-(void) onShare

{

return;

}

还需要在文件顶部引用#import "SceneManager.h"

好了我们来添加SceneManager文件中的代码吧。首先我们要在头文件中添加一些公开的类方法:

//类方法实现场景切换

+(void) goMenu;

+(void) goStart;

+(void) goResearch;

+(void) goCredits;

+(void) goGameover;

+(void) goWin;

并在实现文件(.m)中添加私有方法:

//私有的类方法

@interface SceneManager ()

+(void) go:(CCLayer*) layer;

+(CCScene*) wrap:(CCLayer*) layer;

@end

然后我们实现文件中添加这些方法:

//进入菜单

+(void) goMenu

{

CCLayer *layer = [MenuLayernode];

[selfgo:layer];

}

//开始新的游戏

+(void) goStart

{

}

//进入研究升级场景

+(void) goResearch

{

}

//积分

+(void) goCredits

{

}

//游戏结束场景

+(void) goGameover

{

}

//游戏胜利界面

+(void) goWin

{

}

//切换场景

+(void) go:(CCLayer*) layer

{

CCDirector *director = [CCDirectorsharedDirector];

CCScene *newScene = [SceneManagerwrap:layer];

if ([directorrunningScene]) {

[directorreplaceScene:newScene];

}

else{

[directorrunWithScene:newScene];

}

}

//添加场景

+(CCScene*) wrap:(CCLayer*) layer

{

CCScene *newScene = [CCScenenode];

[newSceneaddChild:layer];

return newScene;

}

这些工作做好之后我们要在AppDelegate.m文件中修改一些代码:

首先修改头文件引用把"IntroLayer.h"改成"SceneManager.h"

然后我们把

-(void) directorDidReshapeProjection:(CCDirector*)director

方法中的代码换成[SceneManager goMenu];

之后运行一下我们的菜单场景就出来了,对了还需要把iOS设备修改成Iphone(Retina)高清模式。

运行成功就会出现我们游戏菜单场景。


读书人网 >操作系统

热点推荐