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
}

 

  • このエントリーをはてなブックマークに追加
  • Pocket

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。

CAPTCHA