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

    }

  • 相关阅读:
    Cron表达式说明
    exe4j 使用记录(二):jar打包exe
    exe4j 使用记录(一):下载、安装及注册
    Sublime Text3添加右键
    jenkins 入门教程
    Visual Studio设置字体及护眼背景色
    Visual Studio 设置C#语言代码格式
    Visual Studio 常用快捷键
    Maven中使用本地JAR包
    oracle 查看锁表及解锁的语句
  • 原文地址:https://www.cnblogs.com/daochong/p/5261187.html
Copyright © 2020-2023  润新知