zoukankan      html  css  js  c++  java
  • 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);

    }

  • 相关阅读:
    006使用python编写一个猜数字的程序
    002python函数、高级特性
    008python绘制五个五角星
    005使用 Python 生成 200 个激活码
    001python基础
    003python函数式编程,模块
    004python面向对象,错误,调试和测试
    Docker系列之(一):10分钟玩转Docker
    mongoDB系列之(一):10分钟玩转mongoDB
    Hadoop系列之(二):Hadoop集群部署
  • 原文地址:https://www.cnblogs.com/daochong/p/5261187.html
Copyright © 2011-2022 走看看