因为之前用过flash 写游戏,flash上会自带按钮按下后按钮图片缩小的功能。后来发现cocos2d里面是用两张一样的图采用不同大小来达到这种效果的。因为自己PS不会,也懒得弄,所以自己动手改了一下cocos里生成图片按钮的代码,达到点击按钮可以缩小按钮的效果。下面放上代码
bool MenuItemImage::initWithNormalImage(const std::string& normalImage, const std::string& selectedImage, const std::string& disabledImage, const ccMenuCallback& callback)
{
Node *normalSprite = nullptr;
Node *selectedSprite = nullptr;
Node *disabledSprite = nullptr;
if (normalImage.size() >0)
{
normalSprite = Sprite::create(normalImage);
}
if (selectedImage.size() >0)
{
selectedSprite = Sprite::create(selectedImage);<span style="white-space:pre"> </span>
selectedSprite->setScale(0.9f);
selectedSprite->setPosition(normalSprite->getContentSize().width*0.05f,
normalSprite->getContentSize().height*0.05f);
}
if(disabledImage.size() >0)
{
disabledSprite = Sprite::create(disabledImage);
}
return initWithNormalSprite(normalSprite, selectedSprite, disabledSprite, callback);
}
原来的函数我懒得去找了这是改好之后的、这里有两个主要的变量名,一个是selectedSprite这是选择后的精灵,一个是normalSprite,这是正常情况下的精灵。在这里我在create他们的时候都用的是同一张图,然后我再把selectedSprite的大小缩小到原来的0.9倍。光这样缩小还不够,还得给他设置一下位置不然他是按照锚点来缩小、点击的时候看起来就很怪。