首先在创建两个文件名字为MenuScene.h;MenuScene.cpp
MenuScene.h;中的代码如下
class MenuScene:Layer//创建一个MenuScene类,来继承Layer{public:
CREATE_FUNC(MenuScene); static Scene * createScene();//定义一个场景创建函数
bool init();
//布尔的init函数初始
void menuSelect(Ref * obj);//定义一个跳转函数
};在.h文件中定义所需要的函数类型之后在cpp文件实现定义的函数MenuScene.cpp代码如下
Scene * MenuScene::createScene()
{ auto scene=Scene::create();
auto layer=MenuScene::create();
scene->addChild(layer);
return scene;
};
//创建开始场景
bool MenuScene::init()
{
if (!Layer::init()) {
return false;
}
auto bk=Sprite::create("img_bg_logo.jpg");//添加名为<span style="font-family: Arial;">img_bg_logo.jpg的背景涂层</span>
bk->setPosition(Vec2(Director::getInstance()->getWinSize().width/2,Director::getInstance()->getWinSize().height/2));//设置背景位置
this ->addChild(bk);//将定义的bk添加到该图层显示
auto logo=Sprite::create("LOGO.png");
logo->setPosition(Vec2(Director::getInstance()->getWinSize().width/2,Director::getInstance()->getWinSize().height-400));
this->addChild(logo);
<span style="color: rgb(54, 46, 43); font-family: Arial; font-size: 14px; line-height: 26px;"> 进入游戏界面的按钮</span>
auto label01=Label::createWithSystemFont("开始游戏", "", 35);
label01->setColor(Color3B::YELLOW);
//定义一个label 开始游戏 并且实现颜色设置
auto menuItemStart=MenuItemLabel::create(label01, CC_CALLBACK_1(MenuScene::menuSelect, this));
menuItemStart->setPosition(Vec2(Director::getInstance()->getWinSize().width/2, Director::getInstance()->getWinSize().height-600));
menuItemStart->setTag(10);
auto menu=Menu::create(menuItemStar,nullptr);
menu->setPosition(Vec2::ZERO);
this->addChild(menu);
return true;
}//跳转函数的实现
void MenuScene::menuSelect(Ref * obj)
{
auto sceneg=Game::createScene();
Director::getInstance()->replaceScene(TransitionFade::create(0.1, sceneg));
break;
}
本文详细介绍了如何在游戏开发中创建并初始化场景,包括场景创建、背景设置、按钮交互及场景跳转流程。
450

被折叠的 条评论
为什么被折叠?



