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

小小菜之Cocos2d-x游戏开发旅程——项目实例:飞机大战(1)

2015-09-11 19:45 621 查看
1.场景跳转及菜单场景

今天,给大家讲解一下一款纵版射击类游戏——飞机大战。

首先,我们来新建一个项目,如何新建项目呢?大家应该都会吧

cocos new -p com.game.plane -d ~/Desktop -l cpp PlaneGame

项目创建好了之后,打开项目文件下

proj.ios_mac文件->PlaneGame.xcodeproj。打开项目,在Xcode中点击左上角播放按钮开始编译,编译时间稍长,我们利用这里时间讲解一下飞机大战的需求。

这款游戏有四个场景,菜单场景,游戏场景,帮助场景和游戏关于场景。

菜单场景为主界面,有3个菜单条目,分别是 开始游戏,游戏帮助,游戏关于。分别跳转到不同的场景

游戏场景,我们的游戏逻辑全部在游戏场景中编写。首先有一架玩家控制的飞机,向上飞;可以发射子弹,子弹向上飞。从上方会掉落敌机。需要打掉敌机。

帮助场景,对飞机大战游戏的玩法作介绍

关于场景,显示开发者的信息

首先,我们中菜单场景MenuScene中添加一个背景

auto sprite = Sprite::create("menu.png");
sprite->setPosition(Vec2::ZERO);
sprite->setAnchorPoint(Vec2::ZERO);
this->addChild(sprite, 0);


然后在屏幕上添加菜单,具有3个菜单条目,start,help ,about分别跳转到3个场景

//添加菜单条目
auto start = MenuItemFont::create("start" , CC_CALLBACK_1(HelloWorld::menuCloseCallback, this));
auto help = MenuItemFont::create("help" , CC_CALLBACK_1(HelloWorld::menuCloseCallback, this));
auto about = MenuItemFont::create("about" , CC_CALLBACK_1(HelloWorld::menuCloseCallback, this));

//设置菜单的坐标
start->setPosition(visibleSize.width/2 , visibleSize.height/2);
help->setPosition(visibleSize.width/2 , visibleSize.height/2 - 100);
about->setPosition(visibleSize.width/2 , visibleSize.height/2 - 200);

start->setColor(Color3B::BLACK);
help->setColor(Color3B::BLACK);
about->setColor(Color3B::BLACK);

start->setTag(TAG_START);
help->setTag(TAG_HELP);
about->setTag(TAG_ABOUT);

auto menu = Menu::create(start , help , about, NULL);
menu->setPosition(Vec2::ZERO);
this->addChild(menu, 1);


接下我们需要对菜单条目进行回调函数的实现

先新建3个场景 GameScene , HelpScene , AboutScene

接下来是菜单的回调函数

void HelloWorld::menuCloseCallback(Ref* pSender)
{

auto nowMenu = (MenuItemFont*)pSender;
switch (nowMenu->getTag()) {
case TAG_START:
{
auto s = Game::createScene();
Director::getInstance()->replaceScene(s);
}
break;
case TAG_HELP:
{
auto s = Help::createScene();
Director::getInstance()->replaceScene(s);
}
break;
case TAG_ABOUT:
{
auto s = About::createScene();
Director::getInstance()->replaceScene(s);
}
break;

default:
break;
}

}


这样就可以从主菜单往各个场景跳转了

未完待续。。。。

—————–9秒学院学习日志
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: