我想做一批按钮,想实现的效果是,默认显示图片A.png,点击一下,按钮放大一点,然后执行一个事件(比如,关闭背景音乐、重置游戏等),成功以后按钮的的背景图换成B.png
之前我用MenuItemSprite,实现了,大致代码如下:
auto menu = Menu::create();
auto spriteNormal = Sprite::create(s_pathSettingBtnOk);
spriteNormal->setScale(0.5, 0.5);
auto spriteSelected = Sprite::create(s_pathSettingBtnOk);
auto settingBtnOkItem = MenuItemSprite::create(spriteNormal, spriteSelected, nullptr, CC_CALLBACK_1(SettingLayer::settingBtnOkCallback, this));
settingBtnOkItem->setPosition(Point(this->winSize.width / 2, this->winSize.height / 2));
menu->addChild(settingBtnOkItem);
menu->setPosition(Point(0, 0));
this->addChild(menu);
```
这样实现起来,有个问题是,按钮的第一个 Sprite 是被缩小0.5倍的,但它的可点击区域其实是原图的大小,我尝试设定 Sprite 的Rect,但按钮的位置又变了。
找了下资料,是不是能用ControlButton去做,尝试了一下,效果到挺好的,用ControlButton去实现,点击按钮的时候,它默认就变大一点点,但在我点击后,背景音乐被关闭了后,怎么去替换按钮的图片?
求各位给个帮助:5: