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

创建游戏的登录注册界面

2016-07-21 22:41 423 查看
首先这个界面分为登录界面和注册界面,而在这两个界面中,精灵和标签就不用多说了。剩余的用的最多的两个控件是EditBox和Menu。使用方法如下:

local editName = cc.EditBox:create(cc.size(420, 70),cc.Scale9Sprite:create(“logon/editBox.png”))

editName:setPosition(cc.p(600, 300))                                           --设置位置

editName:setMaxLength(20)                                                           --设置输入的最大长度

editName:setFontSize(50)                                                                 --设置输入文字的大小

editName:setFontName(“Arial”)                                               --设置输入文字的字体

editName:setFontColor(cc.c3b(255, 0, 0)                                     --设置输入文字的颜色

editName:setPlaceHolder(“请输入账号”)                                         --设置默认显示文字

editName:setPlaceholderFontColor(cc.c3b(255, 255, 255)    --设置默认显示文字的颜色

editName:setInputMode(cc.EDITBOX_INPUT__MODE_EMAILADDR)     --设置输入键盘模式

editName:setInputMode(cc.EDITBOX_INPUT_MODE_PHONENUMBER)         --设置键盘为数字输入模式

editName:setInputFlag(cc.EDITBOX_INPUT_PASSWORD)     --设置密码格式

editName:setInputFlag(cc.EDITBOX_INPUT_SENSITIVE)                  --设置普通格式

editName:setTag(201)

layer:addChild(editName)

还可以为EditBox添加事件registerScriptEditBoxHandler

local function editBoxCallBack(strEventName, pSender)

           localedit = pSender

           localstrFmt

           ifstrEventName == “began” then

                     …

           elseifstrEventName == “ended” then

                      …

           elseifstrEventName == “returned” then

                     …

           end

           --edit或者pSender就是注册事件的EditBox,可以通过Tag值来区分

end

--注册事件:

editName:registerScriptEditBoxHandler(editBoxCallBack)

到此为止,EditBox简单的用法就介绍完了,跟C++版本也没什么区别。

下面看一下按钮的事件(创建一个注册按钮和登录按钮)

local logonItem = cc.MenuItemImage:create(“logon/logonitem.png”,“logon/logonitem.png”)

logonItem:setPosition(cc.p(400, 100))

logonItem:setTag(101)

local registerItem = cc.MenuItemImage:create(“logon/registeritem.png”,“logon/registeritem.png”)

registerItem:setPosition(cc.p(800, 100))

registerItem:setTag(102)

local menu = cc.Menu:create(logonItem, registerItem)

menu:setPosition(cc.p(0, 0))

menu:setAnchorPoint(cc.p(0, 0))

layer:addChild(menu)

local function menuCallBack(tag, pSender)

           if tag ==101 then

                     print(“logonItemclick”)

           elseiftag == 102 then

                     print(“registerItemclick”)

           end

           localitem = pSender

           item:stopAllActions()

           item:setScale(1.0)

           item:runAction(cc.Sequence:create(cc.ScaleTo:create(0.1,1.1), cc.ScaleTo:create(0.1, 1.0)))

end

--添加注册事件

logonItem:registerScriptTapHandler(menuCallBack)

registerItem:registerScriptTapHandler(menuCallBack)

这样就能触发按钮事件了。

接下来,我们点击注册按钮,弹出注册界面,那么在上面的事件中,在tag == 102里继续添加如下代码:

local scene = cc.Director:getInstance():getRunningScene()

local reigsterLayer = scene:getChildByTag(2)

if registerLayer ~= nil then

           registerLayer:setVisible(true)

           layer:setVisible(false)

end

我们在CLogonLayer的create函数里,在scene:addChild(scene:createLayer())下面加上这样一句代码

scene:addChild(scene:createRegisterLayer())

然后在createRegisterLayer方法里进行注册界面的创建,并设置层级的tag为2。用到的控件也是EditBox和Menu。这里就不一一说明了。

最后,点击登录按钮,切入到大厅场景。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  lua cocos2d-x menu EditBox