您的位置:首页 > 移动开发 > Cocos引擎

cocos2d-x之猜数字游戏

2016-03-10 11:29 393 查看
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);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: