Cocos2d-x的学习之旅(六)输入框

前端之家收集整理的这篇文章主要介绍了Cocos2d-x的学习之旅(六)输入框前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

声明

本教程仅用于初学cocos2dx同学使用,内容由本人(Code-Man)编写,此教程使用cocos2dx版本为3.4。本教程内容可以自由转载,但必须同时附带本声明,或注明出处。QQ群:Cocos2d-CodeMonkey,461679592

又是一个深夜啊,但也就是深夜才更有灵感解决问题。这大概就是CodeMonkey的职业病吧!!!白天上班总提不起劲,晚上就睡不着。我希望有一天,我们程序员能自由分配自己的上班时间,只要能解决问题管你来不来公司。虽然国外很多企业实现了在家办公,生在天朝的我们也就只有羡慕的份了。。。。

进入正题吧。今天学的是输入框,这个是什么?不要问拉低智商的问题。。。不想回答。今天的目标是学会用,知道输入框存在的坑。


今天任务:做一个屌炸天的兑换码的兑换界面

今天的资源:

终于清除了我们用了几节课的场景,背景不换继续我们《罪恶王冠》。哈哈哈!!!!

先来拼图吧,有了前面的知识,为了不多说废话,不会重复讲已经说过的知识。




效果图:


如果把我们的输入框的背景去掉,使用Scale9Sprite看看是一个怎样的效果???


由于我们输入框的背景图是椭圆形的所有,文字跟输入框的融合有点突入。并不美观。如果你要调整文字的大小你需要去调整输入框的高度,但相应的输入框的背景图片也会相应的缩小,输入框背景和文字成正比关系。不管你怎么调它都会按照这个比例调整。所有我们才要把输入框文字和输入框背景分开。

关于为什么输入框文字不管怎么设置的大小都改变不了的情况。我真不知道,哈哈哈!!!!,如果知道的小伙伴欢迎告诉我,但我知道只要改变输入框的高度可以改变文字的大小。


    
    
    
    //输入框背景
    auto inputBox = Sprite::create("exchage_input_frame.png");
//    inputBox->setPosition(exchage_bg->getContentSize()/2+Size(0,30));
//    exchage_bg->addChild(inputBox);
    
    
    /**
     *  输入框控件
     *  1.Size 输入框的大小
     *  2.Scale9Sprite 输入框背景,由输入框的大小决定输入框背景的大小,这里我们并没有传入参数,而是自己创建了一个输入框背景。
     */
    auto editBox = EditBox::create(Size(inputBox->getContentSize().width,inputBox->getContentSize().height),Scale9Sprite::create("exchage_input_frame.png"));
    editBox->setPosition(exchage_bg->getContentSize()/2+Size(30,30));
    editBox->setMaxLength(8);   //输入框最多能输入多少个字符
    editBox->setText("请输入兑换码"); //初始化文字
    editBox->setFontColor(Color3B(255,0));   //文字颜色
    editBox->setFontSize(10);   //文字的大小:注意!!!  这个设置没有任何效果。这也是为什么要自己建立背景的一个问题
    exchage_bg->addChild(editBox);
    
    
    //兑换按钮
    auto Exchangebuttom =MenuItemImage::create("exchage_button.png","exchage_button.png");
    Exchangebuttom->setPosition(Point(exchage_bg->getContentSize().width/2,40));
    Exchangebuttom->setCallback([&,editBox](Ref*obj){
        
        //取得输入框里面的文字输出到控制台
        log("%s",editBox->getText());
    });
    
    
    auto menu = Menu::create(Exchangebuttom,NULL);
    menu->setPosition(Point::ZERO);
    exchage_bg->addChild(menu);

    
    

注意!!!!!!!!!!

如果使用的是cocos2dx3.2的Monkey,在IOS8以上的真机调试的时候一定会遇到,整个游戏画面向右移动的问题。

解决方法在这里:http://www.cocoachina.com/bbs/read.php?tid-271139.html 既然有解决方法我就不重复了。

如果还不能解决的欢迎加入Q群,可以帮你解决这个问题。




最近心情很郁闷~~~~~~ 下期见,我是CodeMonkey 我有我的傲娇!!

本文Demo下载

猜你在找的Cocos2d-x相关文章