创建游戏的登录注册界面
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。这里就不一一说明了。
最后,点击登录按钮,切入到大厅场景。
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。这里就不一一说明了。
最后,点击登录按钮,切入到大厅场景。
相关文章推荐
- drupal中hook_menu()使用
- Android菜单menu控件大全
- 详解Lua中的表的概念及其相关操作方法
- Lua编程示例(二):面向对象、metatable对表进行扩展
- 把Lua编译进nginx步骤方法
- Lua脚本自动生成APK包
- Lua中的元表(metatable)、元方法(metamethod)详解
- Lua中的metatable介绍
- Lua中ipair和pair的区别
- Lua中的函数精讲笔记
- 浅谈Lua的面向对象特性
- 详解Lua中的变量相关知识点
- Lua脚本语言入门笔记
- Lua脚本调用外部脚本
- 详解Lua中的if语句的使用方法
- Lua中调用函数使用点号和冒号的区别
- Lua中的闭合函数、非全局函数与函数的尾调用详解
- Lua中强大的元方法__index详解
- Lua中调用C++函数示例
- Lua面向对象之类和继承浅析