2015年

2月

24日

Cocos2d-x Ver 3.x Cocos2d-x v2 -> v3への変換

Cocos2d-xのv2からv3への変換
基本・文字列・ラベルについて。

CC…のCCは削除。

//v2

CCSprite *sprite  =  CCSprite::create("image.png");
CCLayer *layer  =  CCLayer::create();
etc...


//v3
Sprite *sprite  =  Sprite::create("image.png");
Layer *layer  =  CCLayer::create();
etc...

CCStringはstd::stringへ。

//v2
CCString *string = CCString::create("文字列");
CCString *string = CCString::createWithFormat("数字:%d", 200);
 
//v3
std::string string = "文字列";
std::string string = StringUtils::format("数字:%d", 200);


CCLabelTTF,CCLablBMFontなどはLabelに統合。

//v2
CCLabelTTF *label = CCLabelTTF::create("ラベルの文字", "arial", 30);
CCLabelTTF *label = CCLabelTTF::create(CCString::createWithFormat("代入する値は:%d", 234)->getCString(), "arial", 30, CCSize(200, 40), kCCTextAlignmentCenter, kCCVerticalTextAlignmentCenter);
CCLabelBMFont *label = CCLabelBMFont::create("ラベルの文字", "font.fnt");
 
//v3
CCLabelTTF *label = Label::createWithTTF("ラベルの文字", "arial.ttf", 30);
CCLabelTTF *label = Label::createWithTTF(StringUtils::format("代入する値は:%d", 234), "arial.ttf", 30, Size(200, 40), TextHAlignment::CENTER, TextVAlignment::CENTER);
CCLabelTTF *label = Label::createWithBMFont("font.fnt", StringUtils::format("%d", needCount));
 
//TextHAlignmentのデフォルトはLEFT
//TextVAlignmentのデフォルトはTOP
 

ボタンの役割をするCCMenu・CCMenuItemはボタンタップ時の呼び出し方と呼び出し先の引数に注意。
ccc3はColor3Bに、ccpはVec2にそれぞれ変更

//v2
CCMenuItemImage *itemImage = CCMenuItemImage::create("btn.png", "btw_h.png", this, menu_selector(HelloWorld::pushBtn));
itemImage->setPosition(ccp(10, 10));
itemImage->setTag(5);
CCMenu *menu = CCMenu::create(itemImage, NULL);
this->addChild(menu, 100);
//ボタンを押した時に実行されるメソッド
void HelloWorld::pushBtn(CCMenuItem *item) {
    log("ボタンのtag:%d", item->getTag());
    //ボタンのtag:5
}
 
//v3
MenuItemImage *itemImage = MenuItemImage::create("btn.png", "btn_h.png", CC_CALLBACK_1(HelloWorld::pushBtn, this));
itemImage->setPosition(Vec2(10, 10));
itemImage->setTag(5);
Menu *menu = Menu::create(itemImage, NULL);
this->addChild(menu, 100);
//ボタンを押した時に実行されるメソッド
void HelloWorld::pushBtn(Ref *ref) {
    MenuItem *item = dynamic_cast<MenuItem *>(ref);
    log("ボタンのtag:%d", item->getTag());
    //ボタンのtag:5
}