码迷,mamicode.com
首页 > 其他好文 > 详细

cocos2d-x之猜数字游戏

时间:2016-03-10 12:36:56      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

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);

}

 

cocos2d-x之猜数字游戏

标签:

原文地址:http://www.cnblogs.com/daochong/p/5261187.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!