cocos2d-x之加法计算器

bool HelloWorld::init()

{

    if ( !Layer::init() )

    {

        return false;

    }

    

    Size visibleSize = Director::getInstance()->getVisibleSize();

    Vec2 origin = Director::getInstance()->getVisibleOrigin();

 

    buildUI();

    addListeners();

    

    return true;

}

void HelloWorld::buildUI(){

    aTF=TextFieldTTF::textFieldWithPlaceHolder("Value","Courier",16);

    aTF->setPosition(100,300);

    addChild(aTF);

    

    auto addLabel=Label::create();

    addLabel->setString("+");

    addChild(addLabel);

    addLabel->setPosition(aTF->getPositionX()+50,aTF->getPositionY());

    

    bTF=TextFieldTTF::textFieldWithPlaceHolder("Value","Courier",16);

    bTF->setPosition(addLabel->getPositionX()+50,aTF->getPositionY());

    addChild(bTF);

    

    auto equalLabel=Label::create();

    equalLabel->setString("=");

    addChild(equalLabel);

    equalLabel->setPosition(bTF->getPositionX()+50,aTF->getPositionY());

    

    resultLabel=Label::create();

    addChild(resultLabel);

    resultLabel->setPosition(equalLabel->getPositionX()+50,aTF->getPositionY());

    

    addBtn=Label::create();

    addBtn->setString("Add");

    addBtn->setSystemFontSize(16);

    addChild(addBtn);

    addBtn->setPosition(aTF->getPositionX(),aTF->getPositionY()-50);

}

 

void HelloWorld::addListeners(){

    auto director=Director::getInstance();

    auto handler=[=](Touch *t,Event *e){

        auto target=e->getCurrentTarget();

        

        if (target->getBoundingBox().containsPoint(t->getLocation())) {

            if (aTF==target) {

                aTF->attachWithIME();

            }else if(bTF==target){

                bTF->attachWithIME();

            }else if (target==addBtn){

                int a=__String::create(aTF->getString())->intValue();

                int b=__String::create(bTF->getString())->intValue();

                

                resultLabel->setString(StringUtils::format("%d",a+b));

            }

        }

        

        return false;

    };

    

    auto addListenerToTarget=[director,handler](Node *target){

        auto l=EventListenerTouchOneByOne::create();

        l->onTouchBegan=handler;

        director->getEventDispatcher()->addEventListenerWithSceneGraphPriority(l,target);

    };

 

    addListenerToTarget(addBtn);

    addListenerToTarget(aTF);

    addListenerToTarget(bTF);

    

//    auto addListener=EventListenerTouchOneByOne::create();

//    addListener->onTouchBegan=handler;

//    director->getEventDispatcher()->addEventListenerWithSceneGraphPriority(addListener,addBtn);

//    

//    auto aTfClickListener=EventListenerTouchOneByOne::create();

//    aTfClickListener->onTouchBegan=handler;

//    director->getEventDispatcher()->addEventListenerWithSceneGraphPriority(aTfClickListener,aTF);

//    

//    auto bTfClickListener=EventListenerTouchOneByOne::create();

//    bTfClickListener->onTouchBegan=handler;

//    director->getEventDispatcher()->addEventListenerWithSceneGraphPriority(bTfClickListener,bTF);

}

 

转载于:https://www.cnblogs.com/daochong/p/5260187.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值