《Cocos2d-x游戏开发 手把手教你Lua语言的编程方法》是基于社区3.7.x引擎编写的入门开发指南,也是一本参考手册。在发布社区版3.7以来,引擎进行了大刀阔斧的裁剪和改进。尤其是UI部分的变化,让老开发和新收都无从下手,本书对ccui框架进行了全方位的介绍,并结合CocosStudio进行说明。
本地配套录制了10个讲解视频,和书上的内容相辅相成,新手可以更快的上手游戏开发,老手也可以从中得到新的体会。
除了对全书进行更新,还新增了UI控件、DragonBones、Protobuf、PushCenter等类容,部分章节更新了个人积累的Lua封装实现。
第1~3章为基础知识,是使用Cocos2d-x Lua开发游戏的必备知识集合;
第4章和第6章以实际作品“FruitFest”展示了完整的游戏开发流程;
第5章包行OpenGL ES等游戏开发进阶知识,其中介绍的功能是绝大多数游戏都需要的,熟知这些知识可以在开发游戏功能模块的时候更加得心应手
;第7~8章为高级编程技术,为游戏产品发布阶段提供有力支撑。
ccui.Button与Cocos Studio编辑器中的Button控件对应。它的工作原理类似于键盘,每点击一次就触发一次事件,松手之后复原。
按钮创建函数ccui.Button:create(normalImage, selectedImage, disableImage, texType)。
参数说明如下:
*(1)normalImage: 普通状态下显示的图片(可选)。
*(2)selectedImage: 按下状态下显示的图片(可选)。
*(3)disableImage: 禁用状态下显示的图片(可选)。
*(4)texType: 图片来源,0从文件,1从精灵帧缓存(可选)。
如果要创建文本按钮,接口的4个参数均不传值。
创建文本按钮示例。
local btn = ccui.Button:create()
btn:setTitleText('文本按钮')
btn:setTitleFontSize(24)
btn:setTitleColor(cc.c3b(0, 255, 0))
btn:addTo(self)
btn:pos(display.cx, display.cy + 400)
btn:addTouchEventListener(function(ref, eventType)
if cc.EventCode.BEGAN == eventType then – 0
print("began")
elseif cc.EventCode.MOVED == eventType then – 1
print("move")
elseif cc.EventCode.ENDED == eventType then – 2
print("end")
elseif cc.EventCode.CANCELLED == eventType then – 3
print("cancel")
end
end)
Button内部封装有一个Label,通过成员函数setTitleText、setTitleFontSize和setTitleColor来设置按钮上文本标签的内容、字体大小和颜色。
所有ccui控件都有派生自基类ccui.Widget,他们都有共同的触摸事件监听注册函数addTouchEventListener。通常监听函数是个匿名函数,参数ref是触发事件对象,eventType是触摸事件类型。
创建图片按钮示例。
-- 图片按钮
local btn = ccui.Button:create("button/btn_n.png", "button/btn_p.png", "button/btn_d.png", 0)
btn:addTo(self)
btn:pos(display.cx, display.cy + 300)
-- btn:setEnabled(false)
btn:addTouchEventListener(function(ref, eventType)
if cc.EventCode.BEGAN == eventType then – 0
print("began")
elseif cc.EventCode.MOVED == eventType then – 1
print("move")
elseif cc.EventCode.ENDED == eventType then – 2
print("end")
elseif cc.EventCode.CANCELLED == eventType then – 3
print("cancel")
end
end)