博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Cocos2d-x3.2 EditBox的使用
阅读量:7128 次
发布时间:2019-06-28

本文共 4818 字,大约阅读时间需要 16 分钟。

  hot3.png

#include "cocos2d.h"//引入头文件和命名空间#include "extensions/cocos-ext.h"USING_NS_CC_EXT;USING_NS_CC;class GameScene : public cocos2d::Layer, public EditBoxDelegate{public:    static cocos2d::Scene* createScene();        virtual bool init();        CREATE_FUNC(GameScene);        void funCallback(Ref* pSender);        virtual void editBoxEditingDidBegin(cocos2d::extension::EditBox* editBox);    virtual void editBoxEditingDidEnd(cocos2d::extension::EditBox* editBox);    virtual void editBoxTextChanged(cocos2d::extension::EditBox* editBox, const std::string &text);    virtual void editBoxReturn(cocos2d::extension::EditBox *editBox);    void toExtensionsMainLayer(cocos2d::Ref *sender);        private:        //注意不能用auto关键字    Size size;    Sprite *sprite;    cocos2d::Label *_TTFShowEditReturn;    cocos2d::extension::EditBox *_editName;    cocos2d::extension::EditBox *_editPassword;    cocos2d::extension::EditBox *_editEmail;    bool _drag;};

//  Created by Jacedy on 14-8-11.////#include "GameScene.h"USING_NS_CC;cocos2d::Scene* GameScene::createScene(){    auto scene = Scene::create();   //创建一个场景    auto layer = GameScene::create();   //创建一个图层    scene->addChild(layer);    return scene;}//初始化当前的图层bool GameScene::init(){    if(!Layer::init())      //初始化父类        return false;        //获取屏幕大小    size = Director::getInstance()->getVisibleSize();    //auto size = Director::getInstance()->getWinSize();        //添加一个图片精灵    sprite = Sprite::create("OnePiece_1.png");    sprite->setPosition(Vec2(size.width/2, size.height/2));    this->addChild(sprite);        auto glview = Director::getInstance()->getOpenGLView();    auto visibleOrigin = glview->getVisibleOrigin();    CCLOG("%f", visibleOrigin.x);        _TTFShowEditReturn = Label::createWithSystemFont("No edit Control return!", "Mark Felt", 30);    _TTFShowEditReturn->setPosition(Point(visibleOrigin.x + size.width /2, visibleOrigin.y + size.height - 50));    addChild(_TTFShowEditReturn);        //Back Menu    auto itemBack = MenuItemFont::create("Back", CC_CALLBACK_1(GameScene::toExtensionsMainLayer, this));    itemBack->setPosition(Point(visibleOrigin.x + size.width - 50, visibleOrigin.y + 25));    auto menuBack = Menu::create(itemBack, NULL);    menuBack->setPosition(Point::ZERO);    addChild(menuBack);        auto editBoxSize = Size(size.width - 100, 60);        _editName = EditBox::create(editBoxSize, Scale9Sprite::create("green_edit.png"));    _editName->setPosition(Point(visibleOrigin.x + size.width /2, visibleOrigin.y + size.height * 3 / 4));    _editName->setFontName("Paint Boy");    _editName->setFontSize(25);    _editName->setFontColor(Color3B::RED);    _editName->setPlaceHolder("Name:");    _editName->setPlaceholderFontColor(Color3B::WHITE);    _editName->setMaxLength(8);    _editName->setReturnType(EditBox::KeyboardReturnType::DONE);    _editName->setDelegate(this);    addChild(_editName);        _editPassword = EditBox::create(editBoxSize, Scale9Sprite::create("orange_edit.png"));    _editPassword->setPosition(Point(visibleOrigin.x + size.width / 2, visibleOrigin.y + size.height / 2));    _editPassword->setFont("American Typewriter", 30);    _editPassword->setFontColor(Color3B::GREEN);    _editPassword->setPlaceHolder("Password:");    _editPassword->setMaxLength(6);    _editPassword->setInputFlag(EditBox::InputFlag::PASSWORD);    _editPassword->setInputMode(EditBox::InputMode::SINGLE_LINE);    _editPassword->setDelegate(this);    addChild(_editPassword);        //bottom    _editEmail = EditBox::create(Size(editBoxSize.width, editBoxSize.height), Scale9Sprite::create("yellow_edit.png"));    _editEmail->setPosition(Point(visibleOrigin.x + size.width / 2, visibleOrigin.y + size.height / 4));    _editEmail->setAnchorPoint(Point(0.5f, 1.0f));    _editEmail->setPlaceHolder("Email:");    _editEmail->setInputMode(EditBox::InputMode::EMAIL_ADDRESS);    _editEmail->setDelegate(this);    addChild(_editEmail);        return true;}void GameScene::editBoxEditingDidBegin(cocos2d::extension::EditBox* editBox){    log("editBox %p DidBegin.", editBox);}void GameScene::editBoxEditingDidEnd(cocos2d::extension::EditBox* editBox){    log("editBox %p DidEnd.", editBox);}void GameScene::editBoxTextChanged(cocos2d::extension::EditBox* editBox, const std::string &text){    log("editBox %p TextChanged, text: %s", editBox, text.c_str());}void GameScene::editBoxReturn(cocos2d::extension::EditBox *editBox){    log("editBox %p was returned.", editBox);        if(_editName == editBox)    {        _TTFShowEditReturn->setString("Name EditBox return.");    }    else if (_editEmail == editBox)    {        _TTFShowEditReturn->setString("Email EditBox return.");    }}void GameScene::toExtensionsMainLayer(cocos2d::Ref *sender){    }void GameScene::funCallback(Ref* pSender){    }

转载于:https://my.oschina.net/Jacedy/blog/310330

你可能感兴趣的文章
nginx proxy_pass转发路径
查看>>
RHEL/CentOS 6.x使用EPEL6与remi的yum源安装MySQL 5.5.x
查看>>
mysql字符集设置
查看>>
sendmail在企业网中的应用
查看>>
Linux 性能监测工具
查看>>
linux内核参数注释与优化
查看>>
[RHEL7.1]修改网卡命名方式 eno16777763变为eth0
查看>>
Java操作PDF文档(PDFBox)
查看>>
Java研发岗位面试归类B(附答案)
查看>>
VMware Workstation 12 Pro 虚拟机的使用(一)介绍
查看>>
ThinkPHP分页和删除操作
查看>>
CCIE职业发展系列典型案列分析之RIPv1协议配置的解决方案
查看>>
【高德地图API】如何制作自己的旅游地图?
查看>>
windbg 通过网络联机调试配置
查看>>
iOS 瘦身之道
查看>>
nodejs的配置
查看>>
centos7下集群部署zookeeper(伪集群)
查看>>
mysql主从复制
查看>>
IT168:2014年APT***发展趋势及防御策略调研
查看>>
用好ul和li
查看>>