cocos多个图片按钮之同一显示框显示内容与菜单显示消失

多个图片按钮用多个Layout,Layout的位置设置一样,点击事件后设置Layout的setVisiable 属性即可实现按钮点击不同显示区域内容显示不同;
实现图片按钮点击后呈现点击状态:
将按钮变量设置为Private成员变量,按钮点击后的回调事件调用两个按钮图片的更改。
例如:

    m_pBtnPlay = Button::create("wanfa.png", "wanfa_on.png");
        m_pBtnPlay->addClickEventListener(CC_CALLBACK_1(Helloword::RulePlaySprite, this));//点击事件
    m_pBtnPlay->setPosition(Vec2(325, 572));
    addChild(m_pBtnPlay);

回调方法写上:

m_pBtnPlay->loadTextureNormal("wanfa_on.png");//正常状态下
    m_pBtnPlay->loadTexturePressed("wanfa_on.png");//点击状态下

这样按钮就可以在点击后呈现点击图片
同一显示框显示用Layout的setVisible就可以了
实现点击背景后菜单消失:

MenuItemImage* BrandingItem = MenuItemImage::create("chong.png", "chong-on.png", "Hall/function/chong_on.png",
        CC_CALLBACK_1(CHallScene::chong, this));
    BrandingItem->setPosition(Vec2(870, 640));

上面是一个图片按钮,添加到菜单:

/*菜单添加到Layout里面其中m_xuanx已经声明为成员*/
    m_xuanx = Layout::create();
    //m_xuanx->setPosition(Vec2(900,640));
    addChild(m_xuanx);
    m_topMenu = Menu::create(BrandingItem,nullptr);
    m_topMenu->setPosition(Vec2::ZERO);
    m_xuanx->addChild(m_topMenu, 10);
    m_xuanx->setPosition(Vec2());
    m_xuanx->setVisible(false);//设置不可见

选项按钮的回调函数写上(选项按钮没写)

m_xuanx->setVisible(true);

就可以实现点击按钮后菜单出现。
点击背景图片后菜单消失:
添加一个监听事件:

bglistener = EventListenerTouchOneByOne::create();//创建背景单点触摸事件监听器
    bglistener->onTouchBegan = CC_CALLBACK_2(CHallScene::onTouchBegan,this);//触摸开始
    bglistener->setSwallowTouches(true);//不想下吞并触摸
    _eventDispatcher->addEventListenerWithSceneGraphPriority(bglistener,this);

onTouchBegan回调:

bool Hollword::onTouchBegan(CCTouch* pTouch, CCEvent* pEvent) 
{
    auto pos = pTouch->getLocation();
    int i = 0;
    if (m_xuanx->isVisible())
    {
        m_caidan->setVisible(false);
        m_xuanx->setVisible(false);
    }
    return false;
}

这样就可以实现菜单点击按钮出现菜单,点击背景菜单消失

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值