[cocos2d-x学习笔记][入门基础]按钮的实现

在游戏中经常会点击某一个图形就会产生特定的效果,

原理就是,在点击的头片上创建了一个可以调用部分功能的函数的按钮,或者说在按钮层上添加一个图片,这样点击在图片上就相当于点击按钮;

代码功能如下:

1,创建一个图层

 auto Image=Sprite::createWithSpriteFrameName("towerPos.png");
    //通过plist文件创建图层“  sprite::createWithSpriteFrameName”
    int height=Image->getContentSize().height;
    int weight=Image->getContentSize().width;
    //获取创建图片的自身大小
     auto bt01=Sprite::createWithSpriteFrameName("ArrowTower1.png");
    auto  bt01_select=Sprite::createWithSpriteFrameName("ArrowTower1.png");
     auto bt02=Sprite::createWithSpriteFrameName("AttackTower1.png");
    auto bt02_select=Sprite::createWithSpriteFrameName("AttackTower1.png");
     auto bt03=Sprite::createWithSpriteFrameName("MultiDirTower1.png");
    auto bt03_select=Sprite::createWithSpriteFrameName("MultiDirTower1.png");
    bt01_select->setScale(1.2 );
    bt02_select->setScale(1.2 );
    bt03_select->setScale(1.2 );
//将图片放大1.2倍(setscale)

2.在将图层添加到一个调用功能函数的node;

auto enuitem01=MenuItemSprite::create(bt01, bt01_select,CC_CALLBACK_1(Game::TDselect, this));
    enuitem01->setTag(10);
     auto enuitem02=MenuItemSprite::create(bt02, bt02_select,CC_CALLBACK_1(Game::TDselect, this));
    enuitem02->setTag(11);
     auto enuitem03=MenuItemSprite::create(bt03, bt03_select,CC_CALLBACK_1(Game::TDselect, this));
    enuitem03->setTag(12);
    //创建节点,包括两种状态下的图片静态(bt01)按下(bt01_select)通过CC_CALLBACK_1,调用函数“game::TDselect”
在.h文件定义调用函数TDselect,在cpp文件实现

void Game::TDselect(Ref *obj)
{
    auto item=(MenuItemSprite *)obj;
    //将对象强制转换成节点类型(MenuItemSprite *)
    函数
    }
    
}


3,将节点添加到按钮;

 auto menu=Menu::create(enuitem01,enuitem02,enuitem03,nullptr);
//将定义的三个节点添加到按钮层
 menu->setPosition(Vec2::ZERO);
 Image->addChild(menu);
    //添加按钮到imgae
 this->addChild(Image);
    //将按钮层添加到当前层,并且2秒后自动消除这个图层
    Image->runAction(Sequence::create(DelayTime::create(2.0f),
                                      CallFunc::create(CC_CALLBACK_0(Sprite::removeFromParent, Image)),
                                      NULL));



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值