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

    }

  • 相关阅读:
    对于使用secureFX上传文件到centos7 的时候,以及不同的用户解压文件,对于文件操作权限的实验
    搭建分布式hadoop环境的前期准备---需要检查的几个点
    mvc EF
    查询数据库的相关信息
    SQL中PIVOT 行列转换
    sql server 取日期
    c# 类型拷贝
    EF没有同步更新(转)
    怎么计算两个经纬度之间的距离.
    简单日志记录
  • 原文地址:https://www.cnblogs.com/daochong/p/5261187.html
Copyright © 2020-2023  润新知