cocos2dx 实习生培训计划

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对象
      ]]--
  • 第五六周 做坦克大战

—————————————————————-

Accrodion

什么是Accordion

  • 简介

    Accordion是一个Tab风格的折叠控件,一般用于分类展示或者导航栏目。它分为两部分:Title和Content,其中Title是用于点击切换的Tab,Content是当前Title下对应展示的内容,一般不同Title对应不同的Content。

  • Demo样式展示

    [点我:Flash上的Accordion展示]

具体要求


  • #### 代码要求
    • 组件使用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。
  • #### 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上。

    相关文章

        本文实践自 RayWenderlich、Ali Hafizji 的文章《...
    Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
    第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
        Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
    1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
       Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...