Cocos2d-x   发布时间:2022-05-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了《Cocos2d学习之路》一,前序和闹钟大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

转载请说明出处:http://blog.csdn.net/lsmfeixiang/article/details/42213929


github地址:https://github.com/teffy/cocos2dx


这是一篇我个人在EOE发的blog《《Cocos2d学习之路》一,前序和闹钟》,由于eoe的blog系统实在是无言以对,我就把eoe上面的帖子以及blog是都转到csdn上来,原文地址http://www.eoeandroid.com/blog-781265-51452.html


本人做Android三年时间了,一直以来都有想学一下怎么做游戏的想法,最近终于是抽出时间,也每天坚持着在学习。

开始也不知道有什么游戏引擎,去年就了解过AndENGIne,现在叫OrangeENGIne,也知道cocos2d,unity3d(还有其他引擎,但是我不怎么知道),前段时间真正开始学习的时候,还是选择了cocos2d。原因如下:
一,我对比了这三个引擎的开发语言, @H_673_21@OGE是基于Java的,当然这个是最熟悉的了,cocos2d基于c++,c,lua,js,ios-oc,unity3d基于C#(这个我真的没去了解过,只是听我同事说的,他之前搞过),而且我最近在学习c++,看C++的视频;
@H_673_21@二是跨平台性, @H_673_21@cocos2d,unity3d当然支持全平台了,而OGE呢,说是要支持全平台,但是到目前为止,只支持android和ios;
@H_673_21@三是在前俩原因的基础上,自然舍弃了unity3d(当然以后还是想去学习一下),然后还是比较熟悉java就去试着看了下oge,照着官方资料学习了一下,很是蛋疼,而且官方资料和新版本api不太一致,当然是有源码,但是我没那精力去研究一遍源码;同时也在cocos2d,环境配置也是把我折磨的死去活来的,也是因为我太想用官方的那个组合套装,最后还是用各种散件,然后配置搞定环境的,然后按照官方的教程写了第一个Demo。
@H_673_21@
总结一下:
1、我的环境是:win7/8(公司电脑win7,家里电脑win8),64位,cocos2d 3.3final,vs2013,eclipse4.2+adt+cdt+sdk+ndkr9d(这一套就可以直接在Eclipse里面run as了,不用先去\proj.android下面执行python build_native.py然后再导入EclipsE)
2、先花了三四天的时间看cocos2d官方的文档( http://cn.cocos2d-x.org/article/ @H_673_21@),从头看到尾,同时也把环境折腾起来,运行一个最经典的程序----Hello World
@H_673_21@3、看教程了解Cocosstudio的基本使用, http://cn.cocos2d-x.org/tutorial/show?id=1649
跟着教程写Code,同时总结了遇到的问题:
@H_673_21@1)、获取系统时间的code要换成下面 code,其他环境不确定,自行百度
@H_673_21@struct tm *tm;
@H_673_21@time_t timep;
@H_673_21@time(&timep);
@H_673_21@tm = localtime(&timep);
@H_673_21@hour = tm->tm_hour;
@H_673_21@minute = tm->tm_min;
@H_673_21@second = tm->tm_sec;
@H_673_21@2)、schedule_SELEctor(ClockBACkgroundScene::updatetiR_464_11845@E),updatetiR_464_11845@e的定义,参数不能为空,要定义为ClockBACkgroundScene::updatetiR_464_11845@e(float t)
@H_673_21@3)、CCLog要换成log
@H_673_21@
@H_673_21@ndk一定得是r9d版本
@H_673_21@项目工程不要放在带有空格的路径
@H_673_21@我是使用先vs写code,在pc上验证,然后Eclipse导入验证下就ok了,其他平台暂时没设备和条件,就不验证了吧
@H_673_21@使用Eclipse直接Run as的时候可能会报C++文件undefined reference to `XX'异常,可以参http://blog.csdn.net/gf771115/article/details/34414449这里,解决,然后可以把:\Cocos\cocos2d-x-3.3\templates\cpp-template-default\proj.android\jni下的Android.mk按照 @H_673_21@这个来修改配置,以后再新建项目就不用管了,当然也可以使用python编译,然后再导入运行
@H_673_21@
最后放一张手机上运行的截图,电脑上的就不截了,还得编译老一会时间


今天到这里了,后面再有进度了,会慢慢的更新上,一点一点记录下我的学习之路。也请高手大牛来指导提携一下,谢谢


点击下载代码


重新看code,发现CREATE_FUNC这个宏没看明白啥意思,百度了下,看明白,搜索结果如下:

  /**
     * define a create function for a specific type,such as CCLayer
     * @__TYPE__ class type to add create(),such as CCLayer
     */
    #define CREATE_FUNC(__TYPE__)
    static __TYPE__* create()
    {
        __TYPE__ *pRet = new __TYPE__();
        if (pRet && pRet->init())
        {
            pRet->autorelease();
            return pRet;
        }
        else
        {
            delete pRet;
            pRet = NULL;
            return NULL;
        }
    }  @H_801_151@   注释中写的很明确,为一个类似CCLayer类的特定的类增加一个create函数.我们也可以看到在宏的下面定义了一个create()函数返回的类型就是宏带入的参数__TYPE__指针类型.那create函数里做了什么呢?它执行了类的构造函数,执行了init()初始化函数,最后又设置创建出的对象为自动释放内存.这样其他人在使用这个类的时候,只要是用create()函数创建出来的对象就不用费心去管理释放内存了.   所以我们的code里面定义了一个virtual init函数  另外 USING_NS_CC查看定义#define USING_NS_CC       using namespace cocos2d,加上cocos2d的命名空间
       

大佬总结

以上是大佬教程为你收集整理的《Cocos2d学习之路》一,前序和闹钟全部内容,希望文章能够帮你解决《Cocos2d学习之路》一,前序和闹钟所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。