cocos2dx 实习生培训计划(自学参考)
一、实习期目标
实习试用期时间
培训时间为一个半月(6周),但实际上2周就心里有数了;
若表现良好且项目需要,可以提前结束实习试用期,进入到实习期;
培训结束后,通过考核的实习生预计1个星期内可以正式进入项目工作,否则考虑换岗或者淘汰。目标设定
- 熟练使用开发、调试和分析工具,了解CocoStudio等UI编辑工具;
- 熟练使用Lua及其C API,tolua绑定,以及目前项目中用到的Dispatcher+MVC框架;
- 深入了解cocos2d-x引擎的源码,能对引擎进行灵活扩展,包括目前沿用的Component组件学习和扩展;
- 培训过程由各个导师私下开展交流会,了解实习生实习情况以及兴趣方向,可以根据实习生情况调整任务难度。
二、计划表
第一周 了解cocos2dx基础知识
- 先熟悉下mac,安装一些必要的软件,有问题找自己导师,但是,能网上搜到答案的请自己解决!
- Accordion组件任务
第二周 熟悉Lua
- 根据http://book.luaer.cn/ 学习并熟悉lua基础知识和用法;
- 使用lua编写脚本实现功能:
输出指定文件夹下所有lua代码文件中有中文的文件(不算print里面,以及注释里面的中文)。 - 使用lua实现面向对象,并给出测试样例;
第三周 进一步熟悉cocos2d-lua以及lua绑定
- 完成第一周组件的lua绑定,完成手动绑定以及脚本绑定
- 模仿don`t shoot yourself 做小游戏
第四周 使用 cocos2d-lua 完成以下需求
- 模仿DSY游戏的功能选择界面完成以下功能:
- 游戏介绍[自带循环滚屏功能,点击停止滚屏,可拖动滚屏];
- 基本设置(reset,mute,lefthanded,controls);
- 选择关卡界面;
- 上下页面增加按钮点击跳转;
- 增加关卡;
- 增加音效;
自行设计滚动数字文本组件NumberScrollLabel,用于游戏界面连射值的表现;
参考(仅供参考)--[[ @brief:滚动数字文本组件 @param anchorPoint 锚点(如UI.POINT_LEFT_BOTTOM) @param width 滚动单个数字文本宽 @param height 滚动单个数字文本高 @param number 数字文本默认显示的值 @param labelCount 滚动数字文本最大的预处理数字文本个数,默认为5 @param startCharMap 滚动数字文本处理的起始字符 @param x 滚动数字组件x坐标 @param y 滚动数字组件y坐标 ]]--
自行设计排列布局组件HBox,用于关卡选择界面排列:
参考(仅供参考)--[[ HBox 创建水平布局容器 @param x [number] x坐标 @param y [number] y坐标 @param anchorPoint [CCPoint] 锚点(如UI.POINT_LEFT_BOTTOM) @param hAlign [userdata] 水平对齐方式 @param vAlign [userdata] 垂直对齐方式 @param gap [number] 子对象间的间隔 @param padding [CCPoint] 内边距 @param children [table] 子结点数组 @return 返回HBox对象 ]]--
- 模仿DSY游戏的功能选择界面完成以下功能:
第五六周 做坦克大战
—————————————————————-
Accrodion
什么是Accordion
简介
Accordion是一个Tab风格的折叠控件,一般用于分类展示或者导航栏目。它分为两部分:Title和Content,其中Title是用于点击切换的Tab,Content是当前Title下对应展示的内容,一般不同Title对应不同的Content。
Demo样式展示
具体要求
- #### 代码要求
- 组件使用3.6版本的cocos2d-x C++编写,并通过tolua绑定到Lua上进行使用和测试;
- 良好的编码风格,遵循3.6引擎风格即可。
- #### 两种创建模式
- 全创建 kFRAccordionModeCreateAll:此模式下,create接口传入的
Vector<Node*>& items
参数中包含的类型为FRAccordionItem*
,也就是Title-Content的pair,所以后续点击不同的Title进行切换的时候,切换对应的Content展示内容即可; - 动态创建 kFRAccordionModeCreateDynamic:create接口传入的
Vector<Node*>& items
参数中包含的类型为FRAccordionTitle*
,也就是只有Title,所以后续点击不同的Title进行切换的时候,需要进行Lua回调(由registerChangeScriptFunc
接口预先设置的Lua函数),并且在Lua回调里通过调用setCurrentContent
动态创建和设置要显示的Content。
- 全创建 kFRAccordionModeCreateAll:此模式下,create接口传入的
- #### create参数解析
const Size& dimension
:整个Accordion组件的尺寸,简单起见,目前只需要考虑固定尺寸的展示区域;FRAccordionCreateMode mode
:创建类型,参见上面解析;Vector<Node*>& items
:类型由mode
参数决定,即可能是FRAccordionItem
也可能是FRAccordionTitle
,前者是所有展示的Title-Content对,后者只提供Title,Content通过动态加载获得;
Tips:建议写个转换函数,统一转换成
FRAccordionItem
的pair再做后续处理。float gap
:Title之间的间隙,默认是0.f。#### 其余说明
- 头文件已经提供,仅供参考,必要的成员变量请自行添加;
- 只把必要的对外接口修饰为public,避免tolua自动绑定多余接口到Lua上。