声明
本教程仅用于初学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 既然有解决方法我就不重复了。
最近心情很郁闷~~~~~~ 下期见,我是CodeMonkey 我有我的傲娇!!!