cocos2d-x之猜数字游戏

Posted 一生不过烟花

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cocos2d-x之猜数字游戏相关的知识,希望对你有一定的参考价值。

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之猜数字游戏的主要内容,如果未能解决你的问题,请参考以下文章

python基础之猜数字游戏

java之猜数字游戏

ios开发之猜数字游戏

Python 基础实战 -- 小游戏之猜数字

Qt5小Demo之猜数字游戏

C讲坛之猜数字游戏的实现