menu和场景

bool LoginScene::init()
{
    if (!Layer::init())
    {
        return false;
    }
    //获取图层大小,this->getContentSize() 在这里和 Director::getInstance()->getVisibleSize() 效果类似
    Size wndSize = getContentSize();
    //加载一个精灵当作背景
    auto spriteBack = Sprite::create("bg.png");
    spriteBack->setPosition(Vec2(wndSize.width / 2, wndSize.height / 2));
    addChild(spriteBack);
    //登录底图
    auto spriteLoginBack = Sprite::create("LoginBack.png");
    spriteLoginBack->setPosition(Vec2(wndSize.width / 2, wndSize.height / 2 + 100));
    addChild(spriteLoginBack);
    //创建进入游戏和退出的菜单
    //MenuItemImage::create如果第一个是默认图片,第二个是点击图片,第三个是不可用图片
    auto menuItemImageEnter = MenuItemImage::create("EnterGame_Normal.png", "EnterGame_Push.png",
        CC_CALLBACK_1(LoginScene::EnterGame, this));
    menuItemImageEnter->setPosition(Vec2(wndSize.width / 2 - menuItemImageEnter->getContentSize().width / 2 - 20, 100));
    auto menuItemImageExit = MenuItemImage::create("Exit_Normal.png", "Exit_Pushed.png",
        CC_CALLBACK_1(LoginScene::ExitGame, this));
    menuItemImageExit->setPosition(Vec2(wndSize.width / 2 + menuItemImageExit->getContentSize().width / 2 + 20, 100));
    auto menu = Menu::create(menuItemImageEnter, menuItemImageExit, NULL);
    menu->setPosition(Vec2::ZERO);
    addChild(menu);
    //设置开始菜单不可用
    //menuItemImageEnter->setEnabled(true);
    //为了使用TextField需要使用命名空间cocos2d::ui
    TextField* textField = TextField::create();
    textField->setPlaceHolder("enter accout");
    textField->setPosition(Vec2(wndSize.width / 2, 535));
    //设置为密码输入模式
    //textField->setPasswordEnabled(true);
    addChild(textField);
    return true;
}

//进入游戏
void LoginScene::EnterGame(Ref* obj)
{
    auto scene = HelloWorld::createScene();
    //切换场景使用replaceScene而不是runWithScene,并且replaceScene会把当前显示的场景删除
    //TransitionCrossFade是场景特效中的一种
    //Director::getInstance()->replaceScene(TransitionCrossFade::create(1, scene));
    Director::getInstance()->pushScene(scene);
}

//退出游戏
void LoginScene::ExitGame(Ref* obj)
{
    Director::getInstance()->end();
}

void HelloWorld::ToLoginScene(Ref* obj)
{
    //auto scene = LoginScene::createScene();
    //Director::getInstance()->replaceScene(TransitionFlipX::create(1, scene));
    Director::getInstance()->popScene();
}

 

转载于:https://www.cnblogs.com/xw847455688/p/8120603.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值