cocos2dx用checkbox实现单选框和button实现table按钮,cocos2dxcheckbox

  次阅读 作者:智能小宝 来源:互联网 2015-09-28 13:16 我要评论(0)

cocos2dx用checkbox实现单选框和button实现table按钮,cocos2dxcheckbox

转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog)

cocos2dx有checkbox和button,但是checkbox是个复选框,也没有table按钮,本文主要是利用这两个控件来实现单选框和table按钮的功能。

主要思路就是,通过响应checkbox和button的事件,来设置和他一组的其他控件的状态来达到我们需要的效果。

我的工作环境时cocos2dx3.2+lua。

首先看看checkbox的实现,我用来实现男女性别的选择。

local manCheck = self:getChild("CheckBox_Man")

local womanCheck = self:getChild("CheckBox_Woman")

if manCheck and womanCheck then

local function callback(sender, eventType)

if eventType == ccui.CheckBoxEventType.selected then

if sender == manCheck then

womanCheck:setSelectedState(false)

else

manCheck:setSelectedState(false)

end

elseif eventType == ccui.CheckBoxEventType.unselected then

if sender == manCheck then

womanCheck:setSelectedState(true)

else

manCheck:setSelectedState(true)

end

end

end

manCheck:addEventListener(callback)

womanCheck:addEventListener(callback)

manCheck:setSelectedState(true)

womanCheck:setSelectedState(false)

end

然后再来一个table按钮的实现。

先定义一些table的常量定义:

--定义常量

local Item_Tag_All = 1000

local Item_Tag_Equip = 1001

local Item_Tag_Material = 1002

local Item_Tag_Other = 1003

local ButtonSwitch =

{

[Item_Tag_All] = "全部",

[Item_Tag_Equip] = "装备",

[Item_Tag_Material] = "材料",

[Item_Tag_Other] = "其他",

}

然后创建按钮,并设置tag:

--筛选按钮

local width = title_bg:getContentSize().width

for tag = Item_Tag_All, Item_Tag_Other do

if ButtonSwitch[tag] then

local curbtn = ccui.Button:create()

curbtn:setTouchEnabled(true)

curbtn:setScale9Enabled(true)

curbtn:loadTextures(BTN__NORMAL, BTN_SELECTED, "", ccui.TextureResType.plistType)

curbtn:setSize(cc.size(100, 53))

local size = curbtn:getContentSize()

curbtn:setPosition(cc.p(width + size.width / 2, winSize.height - 20 - size.height / 2))

curbtn:setTitleText(ButtonSwitch[tag])

curbtn:setTitleFontSize(25)

curbtn:setTag(tag)

self._widget:addChild(curbtn)

--注册点击事件

local function callback_tag(sender, eventType)

if eventType == ccui.TouchEventType.ended then

showTable(tag)

end

end

curbtn:addTouchEventListener(callback_tag)

width = width + curbtn:getContentSize().width + 10

end

end

最后是显示按钮的规则,把同组的其他table设置成正常,选中的设置成高亮:

--显示一个table

function showTable(showTag)

for tag = Item_Tag_All, Item_Tag_Other do

local tagBar = self._widget:getChildByTag(tag)

if tagBar then

if showTag == tag then

tagBar:setBrightStyle(ccui.BrightStyle.highlight)

else

tagBar:setBrightStyle(ccui.BrightStyle.normal)

end

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...