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

cocos2d中分步实现飞机大战----场景跳转

2015-03-05 15:15 295 查看
首先,作为一个完整的游戏项目,要有满足游戏要求的界面,并实现之间的跳转,不能只有一个游戏主界面。

下面以主场景界面为例:

.h文件

#include "cocos2d.h"

USING_NS_CC;

class menuScene:public
Layer{

public:

static Scene * createScene(); //创建场景

CREATE_FUNC(menuScene);

bool init();

void menuCallBack(Ref * obj);
//按钮回调函数
};

.CCP文件
#include
"menuScene.h"

#include "gameScene.h" //---引用要跳转的的场景

#include "helpScene.h"

#include "aboutScene.h"

Scene *
menuScene::createScene(){

auto scene=Scene::create();
scene->addChild(menuScene::create());

return scene;
}
bool
menuScene::init(){

if (!Layer::init()) {

return
false;
}

//-------添加背景图

auto sp=Sprite::create("img_bg_logo.jpg");

this->addChild(sp);

sp->setPosition(Director::getInstance()->getWinSize().width/2,

Director::getInstance()->getWinSize().height/2 );

auto splogo=Sprite::create("LOGO.png");
//-------添加logo

this->addChild(splogo);

splogo->setPosition(Director::getInstance()->getWinSize().width/2,-200);

splogo->runAction(MoveTo::create(1,
Vec2(Director::getInstance()->getWinSize().
width/2,Director::getInstance()->getWinSize().height/2)));

splogo->runAction(MoveTo::create(60,
Vec2(splogo->getPositionX(), splogo->getPositionY())));

//-------添加按钮

MenuItemFont * itemstart=MenuItemFont::create("开始游戏",

CC_CALLBACK_1(menuScene::menuCallBack,this));
// 添加按钮,和回调函数
itemstart->setPositionY(-100); //设置位置
itemstart->setColor(Color3B(0,255,0));//设置颜色
itemstart->setTag(11); //设置编号

MenuItemFont * itemhelp=MenuItemFont::create("游戏帮助",

CC_CALLBACK_1(menuScene::menuCallBack,this));
itemhelp->setPositionY(-150);
itemhelp->setColor(Color3B(0,255,0));
itemhelp->setTag(12);

MenuItemFont * itemabout=MenuItemFont::create("关于",

CC_CALLBACK_1(menuScene::menuCallBack,this));
itemabout->setPositionY(-200);
itemabout->setColor(Color3B(0,255,0));
itemabout->setTag(13);

Menu * menu=Menu::create(itemstart,itemhelp,itemabout,NULL);

this->addChild(menu);

//-----按钮点击回调函数

switch (((MenuItemFont*)obj)->getTag()) { //强制转换,获取按钮编号

case 11:
{

auto f=gameScene::createScene(); //创建场景

Director::getInstance()->replaceScene(f);//使用导演函数实现跳转
}

break;

case 12:
{

auto f=helpScene::createScene();

Director::getInstance()->replaceScene(f);
}

break;

case 13:
{

auto f=aboutScene::createScene();

Director::getInstance()->replaceScene(f);
}

break;

default:

break;
}
}

同理创建,gameScene,helpScene,aboutScene。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: