• 输入框的展示


    效果:






    .h文件:

    #ifndef __HELLOWORLD_SCENE_H__
    #define __HELLOWORLD_SCENE_H__
    #include "UIEditBox.h"
    #include "cocos2d.h"
    class HelloWorld : public cocos2d::Layer//, public cocos2d::ui::EditBoxDelegate
    {
    public:
        static cocos2d::Scene* createScene();
    
        virtual bool init();
        
        // a selector callback
        void menuCloseCallback(cocos2d::Ref* pSender);
    protected:
    	cocos2d::Label* _TTFShowEditReturn;
    	cocos2d::ui::EditBox* _editName;
    	cocos2d::ui::EditBox* _editPassword;
    	cocos2d::ui::EditBox* _editEmail;
        
        // implement the "static create()" method manually
        CREATE_FUNC(HelloWorld);
    };
    
    #endif // __HELLOWORLD_SCENE_H__
    

    .cpp文件:

    #include "HelloWorldScene.h"
    USING_NS_CC;
    using namespace cocos2d::ui;
    
    Scene* HelloWorld::createScene()
    {
        // 'scene' is an autorelease object
        auto scene = Scene::create();
        
        // 'layer' is an autorelease object
        auto layer = HelloWorld::create();
    
        // add layer as a child to scene
        scene->addChild(layer);
    
        // return the scene
        return scene;
    }
    
    // on "init" you need to initialize your instance
    bool HelloWorld::init()
    {
        //////////////////////////////
        // 1. super init first
        if ( !Layer::init() )
        {
            return false;
        }
        
      //  Size visibleSize = Director::getInstance()->getVisibleSize();
        Vec2 origin = Director::getInstance()->getVisibleOrigin();
    	auto glview = Director::getInstance()->getOpenGLView();
    	auto visibleOrigin = glview->getVisibleOrigin();
    	auto visibleSize = glview->getVisibleSize();
        /////////////////////////////
        // 2. add a menu item with "X" image, which is clicked to quit the program
        //    you may modify it.
    
    	auto editBoxSize = Size(visibleSize.width - 100, visibleSize.height * 0.1);
    
    	// top
    	std::string pNormalSprite = "extensions/green_edit.png";
    	_editName = ui::EditBox::create(editBoxSize, ui::Scale9Sprite::create(pNormalSprite));
    	_editName->setPosition(Vec2(visibleOrigin.x + visibleSize.width / 2, visibleOrigin.y + visibleSize.height * 3 / 4));
    	_editName->setFontColor(Color3B::RED);
    	_editName->setPlaceHolder("Name:");
    	_editName->setPlaceholderFontColor(Color3B::WHITE);
    	_editName->setMaxLength(8);
    	_editName->setFontSize(editBoxSize.height / 2);
    	_editName->setText("  ");
    	_editName->setReturnType(ui::EditBox::KeyboardReturnType::DONE);
    	//_editName->setDelegate(this);
    	addChild(_editName);
    
    	// middle
    	_editPassword = ui::EditBox::create(editBoxSize, "extensions/orange_edit.png");
    	_editPassword->setPosition(Vec2(visibleOrigin.x + visibleSize.width / 2, visibleOrigin.y + visibleSize.height / 2));
    	_editPassword->setFontColor(Color3B::GREEN);
    	_editPassword->setPlaceHolder("Password:");
    	_editPassword->setMaxLength(6);
    	_editPassword->setInputFlag(ui::EditBox::InputFlag::PASSWORD);
    	_editPassword->setInputMode(ui::EditBox::InputMode::SINGLE_LINE);
    	_editPassword->setFontSize(editBoxSize.height / 2);
    	//_editPassword->setDelegate(this);
    	addChild(_editPassword);
    
    	// bottom
    	auto bottomButtonSize = Size(editBoxSize.width, editBoxSize.height + 10);
    	_editEmail = ui::EditBox::create(bottomButtonSize, "extensions/yellow_edit.png");
    	_editEmail->setPosition(Vec2(visibleOrigin.x + visibleSize.width / 2, visibleOrigin.y + visibleSize.height / 4));
    	_editEmail->setPlaceHolder("Email:");
    	_editEmail->setInputMode(ui::EditBox::InputMode::EMAIL_ADDRESS);
    	//_editEmail->setDelegate(this);
    	addChild(_editEmail);
    
        // add a "close" icon to exit the progress. it's an autorelease object
        auto closeItem = MenuItemImage::create(
                                               "CloseNormal.png",
                                               "CloseSelected.png",
                                               CC_CALLBACK_1(HelloWorld::menuCloseCallback, this));
        
    	closeItem->setPosition(Vec2(origin.x + visibleSize.width - closeItem->getContentSize().width/2 ,
                                    origin.y + closeItem->getContentSize().height/2));
    
        // create menu, it's an autorelease object
        auto menu = Menu::create(closeItem, NULL);
        menu->setPosition(Vec2::ZERO);
        this->addChild(menu, 1);
    
        /////////////////////////////
        // 3. add your codes below...
    
        // add a label shows "Hello World"
        // create and initialize a label
        
        auto label = Label::createWithTTF("Hello World", "fonts/Marker Felt.ttf", 24);
        
        // position the label on the center of the screen
        label->setPosition(Vec2(origin.x + visibleSize.width/2,
                                origin.y + visibleSize.height - label->getContentSize().height));
    
        // add the label as a child to this layer
        this->addChild(label, 1);
    
        // add "HelloWorld" splash screen"
      //  auto sprite = Sprite::create("HelloWorld.png");
    
        // position the sprite on the center of the screen
       // sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));
    
        // add the sprite as a child to this layer
        //this->addChild(sprite, 0);
        
        return true;
    }
    
    
    void HelloWorld::menuCloseCallback(Ref* pSender)
    {
        Director::getInstance()->end();
    
    #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
        exit(0);
    #endif
    }
    


  • 相关阅读:
    链接工作过程
    编译器工作过程
    图像边缘提取
    剑指32-1 从上到下打印二叉树
    剑指31 栈的压入 弹出序列
    剑指30 包含min函数的栈
    剑指28 对称的二叉树(暂留)
    asp.net core获取当前请求的完整url
    安装启动consul代理,consul后台管理
    asp.net core用命令方式启动项目
  • 原文地址:https://www.cnblogs.com/Anzhongliu/p/6091899.html
Copyright © 2020-2023  润新知