読者です 読者をやめる 読者になる 読者になる

cocos2d-x ui::EditBoxを使う Extensionは非推奨 Deprecated

ネットの情報だとEditBoxを使うなら"extensions/cocos-ext.h"を使うと書いてますが、

この方法は古いみたいでui::EditBoxを使う用に修正した

新TestScene.h

#include "cocos2d.h"
#include "ui/CocosGUI.h"

class TestScene : public cocos2d::Layer , public cocos2d::ui::EditBoxDelegate
{
public:
    static cocos2d::Scene* createScene();

    virtual bool init();
    
    CREATE_FUNC(TestScene);
private:
    virtual void editBoxEditingDidBegin(cocos2d::ui::EditBox* editBox);
    virtual void editBoxEditingDidEnd(cocos2d::ui::EditBox* editBox);
    virtual void editBoxTextChanged(cocos2d::ui::EditBox* editBox, const std::string& text);
    virtual void editBoxReturn(cocos2d::ui::EditBox* editBox);
};

 新TestScene.cpp

#include "TestScene.h"

USING_NS_CC;

using namespace ui;
Scene* TestScene::createScene()
{
    Scene* scene = Scene::create();
    Layer* layer = TestScene::create();
    scene->addChild(layer);
    return scene;
}
bool TestScene::init()
{
    if (!Layer::init())
    {
        return false;
    }
    EditBox * editBox = EditBox::create(Size(400, 60), "背景画像");
    editBox->setFont("フォント名", 24);
    editBox->setPlaceHolder("");
    editBox->setFontColor(Color4B(0, 0, 0, 255));
    editBox->setMaxLength(16);
    editBox->setText("");
    editBox->setReturnType(EditBox::KeyboardReturnType::DONE);
    editBox->setInputMode(EditBox::InputMode::SINGLE_LINE);
    editBox->setPosition(Vec2(0, 0));
    editBox->setAnchorPoint(Vec2::ANCHOR_BOTTOM_LEFT);
    editBox->setDelegate(this);
    this->addChild(editBox);
    return true;
}
void TestScene::editBoxEditingDidBegin(EditBox *editBox) {
}

void TestScene::editBoxEditingDidEnd(EditBox *editBox) {
}

void TestScene::editBoxTextChanged(EditBox *editBox, const std::string& text) {
}

void TestScene::editBoxReturn(EditBox *editBox) {
}

EditBoxはBitmapフォントが使えない!!