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で個別で設定できます。 これで完了です。