CCMenuの画像でCCSpretFrameクラスを使う方法

cocos2dのver2では色々な変更点がありその修正には、初心者の私にはとても大変なものでした。 その中で、CCMenuに関していくつか問題がありましたので、その解決方法をブログで紹介していきたいと思います。

CCMenuItemImageクラスの変更点

cocos2dをver2にした時に、「itemFromNormalImage」が使えなくなっているので、これをまず変更しなくてはいけません。 [c] //coco2d ver1 ButtonItem1 = [CCMenuItemImage itemFromNormalImage:@"menuA.png" selectedImage:@"menuB.png" target:self selector:@selector(aboutCallback:)];

//cocos2d ver2 こちらに変更 ButtonItem1 = [CCMenuItemImage itemWithNormalImage:@"menuA.png" selectedImage:@"menuB.png" target:self selector:@selector(aboutCallback:)];

[/c] 「itemFromNormalImage」が「itemWithNormalImage」に変わっただけなのでコピペをして変更できます。

CCSpretFrameをCCMenuで利用する

ここからが本題です。

cocos2dのver1では、先ほど書いたCCMenuItemImageに関してはCCSpretFrameも利用できたのですが、cocos2dがver2になった際に利用できません。 そのために、もう一行新しくコードを書いてあげる必要があります。

[c] CCSpriteFrame frame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"menuA.png"]; CCSpriteFrame frame2 = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"menuB.png"]; CCSpriteFrame *frame3 = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"menuC.png"];

[newButton setNormalSpriteFrame:frame];
[newButton setSelectedSpriteFrame:frame2];
[newButton setDisabledSpriteFrame:frame3];

[/c] CCmenuItemImageで指定できる画像をCCSpriteFrameで個別で設定できます。 これで完了です。