bool HelloWorld::init()

{

    if ( !Layer::init() )

    {

        return false;

    }

    

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

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

 

    srand(time(NULL));//随机种子

    theRandomNum=rand()%100;//0~100之间

    

    log("the randnum is %d",theRandomNum);

    

    buildUI();

    addListeners();

    

    return true;

}

 

void HelloWorld::buildUI(){

    auto label=Label::create();

    label->setString("Please input a number between 0~100");

    addChild(label);

    label->setPosition(visibleSize.width/2,visibleSize.height-label->getContentSize().height/2-20);

    

    tf=TextFieldTTF::textFieldWithPlaceHolder("Input number here","Courier",16);

    tf->setPosition(visibleSize.width/2,label->getPositionY()-50);

    addChild(tf);

    

    submitBtn=Label::create();

    submitBtn->setPosition(visibleSize.width/2,tf->getPositionY()-50);

    submitBtn->setString("Submit");

    addChild(submitBtn);

    

    messageLabel=Label::create();

    messageLabel->setPosition(visibleSize.width/2,submitBtn->getPositionY()-50);

    addChild(messageLabel);

    

}

 

void HelloWorld::addListeners(){

    auto director=Director::getInstance();

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

        auto target=e->getCurrentTarget();

        auto point=t->getLocation();

        

        if (target->getBoundingBox().containsPoint(point)) {

            if (target==tf) {

                tf->attachWithIME();

            }else if (target==submitBtn){

                tf->detachWithIME();

                int inputValue=__String::create(tf->getString())->intValue();

                

                if (inputValue>theRandomNum) {

                    messageLabel->setString("input value is bigger");

                }else if (inputValue<theRandomNum){

                    messageLabel->setString("input value is smaller");

                }else{

                    messageLabel->setString("you get it");

                }

            }

        }else{

            tf->detachWithIME();

        }

        

//        if (e->getCurrentTarget()==tf) {

//            tf->attachWithIME();

//        }else if (e->getCurrentTarget()==submitBtn){

//            

//        }else{

//            tf->detachWithIME();

//        }

        

        return false;

    };

    

    auto l=EventListenerTouchOneByOne::create();

    l->onTouchBegan=handle;

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

    

    auto submitBtnClickListener=EventListenerTouchOneByOne::create();

    submitBtnClickListener->onTouchBegan=handle;

    director->getEventDispatcher()->addEventListenerWithSceneGraphPriority(submitBtnClickListener,submitBtn);

}

 

posted on 2016-03-10 11:29  baraka  阅读(287)  评论(0编辑  收藏  举报