Cocos2d-x v2からv3への変換まとめ、その1
Cocos2d-xのv2からv3への変換まとめ、その1。
今回は基本・文字列・ラベルについて。
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に統合。
Label::createWithBMFontの時、引数の順番が逆になっているので注意。
//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 }
この記事へのコメントはこちら