Cocos游戏开发引擎相关介绍

发表于2016-10-25
评论0 4k浏览
cocos引擎相关介绍
1、Cocos2d-x简介
       Cocos2d-x是一套开源的跨平台游戏开发框架。引擎核心采用C++编写,提供C++、Lua、JavaScript三种编程语言接口。引擎中提供了图形渲染、GUI、音频、网络、物理、用户输入等丰富的功能。Cocos2d-x适配iOS, Android, HTML5,Windows Phone, Tizen, PC Windows和Mac OS X系统,功能侧重在手机原生和HTML5两大领域,并积极向3D和VR领域延伸扩展。截止2016年,Cocos2d-x在全球拥有近百万注册开发者,游戏在中国畅销榜上占据50%数量,日韩美等各国占20%,是中国第一、全球第二的手机游戏引擎。

2、Cocos2d-x框架:


3.历史版本:
v3.13.1Sep.13, 2016
v3.13Aug.29, 2016
v3.12Jul.07, 2016
3.11.1May.27, 2016
v3.11May.12, 2016
v3.10Jan.22, 2016
v3.9Jan.19, 2016
2.2.6Jun.27, 2016
上篇文章里有cocos2d-js的入门内容

4、cocos2d-x 3d
    cocos2d-x对3d的开始支持版本应该是V3+ (目前最新3.13+)

 

3D静态模型及3D骨骼动画模型的加载与显示
    Cocos引擎3D功能目前支持载入 obj、c3b、 c3t格式的模型文件,其中obj只能导入静态模型,不支持动画。c3b与c3t则是通过模型转换工具fbx-conv导出插件转换后的文件格式——c3b文件为二进制文件,具有占用空间小,加载速度快等优点;c3t是json格式文件,可以直接打开来查看模型数据,方便开发者进行查看调试。

模型转换工具(fbx-conv)
     fbx-conv是Cocos引擎在tools/fbx-conv目录下自带的模型转换工具,跟随引擎版本更新,作用便是上方提到的将其他模型文件转换为我们所需要的c3b或c3t文件。
通常我们转换的是通用的FBX格式模型文件,可以通过3dmax、maya、blender等建模软件直接导出。但这里的fbx-conv工具不仅可以转换FBX文件,还可以转换obj、blend、c4d等文件。不过还是建议大家使用FBX文件作为中间格式。

在引

在引擎目录tools目录下
Example
fbx-conv.exe-f -v myModel.fbx convertedModel.g3db

我的转换本地测试:


如上,已经把fbx成功生成了出c3b、c3t。

 

5、模型查看器
ModelViewerversion 0.1
It is for cocos2d-x after version v3.5 beta0
View .c3t/.c3b Model
View .pu (ParticleUniverse File Format: http://www.fxpression.com/)
Source code ishere, https://github.com/songchengjiang/cocos2d-x-ModelViewer
USAGE:
Command line WIN/MAC: cd [path of ModelViewer] ./ModelViewerMODELFILEPATH or PUFILEPATH
Note: LEFT_MOUSE_BUTTON --- Rotate Camera
RIGHT_MOUSE_BUTTON --- Translate Camera
MIDDLE_MOUSE_BUTTON --- Scale Camera
SPACE_KEYBOARD--- Reset Camera
上面已经把fbx模型转换好了,来,给大家演示下模型查看器:
下面操作是按照我本地具体路径,可以换成自己的路径:


上面我用命令打开转换好的一个c3t模型文件,运行效果:

(挥刀士兵模型)

          鼠标可操作模型旋转、缩放,位移等!
      //下面是cocos2d-x新建工程和安卓版本演示-----------

6、创建一个工程


     跨平台各个工程目录!

7、将vianTest目录下的proj.android项目导到eclipse里,此时我们会看到下面报错:


上面报错需要我们导入cocos2d-x目录里的java

(其实等同于add lib操作)

导入之后,出现绿色勾ok。

 

        另外project target要对应到相应API版本,不然会报错:
       我这里是API 14,Android 4.0

8、创建一个AVD
       新建很简单,选好参数就ok:


运行模拟器遇到问题:


搜了一下报错内容具体得知:
       由于模拟器用到了 HAXM,官网查看得知这是管理硬件加速的,Android SDK 已经集成了这个软件,但是在 Android SDKManager 中点击安装的时候,虽然显 示它已经安装, 但其实它默认并没有安装。 只要在下图的目录中找到它, 并安装, 安装过程就是一路 Next 就可以,无需自己修改。 当在 “开始—运行--cmd” 中键入命令: scquery intelhaxm 后如下图。 有 STATE : 4 RUNNING 则表示安装成功。


查看了我的android SDK,是为了省下载时间HAXM这个我也没install的,下载来自己安装吧!应为这个只会帮你下载貌似不会帮你自动安装的。

双击安装吧!

安装时我遇到报错:


        解决:需要进入BIOS界面在“configurations”中找到“Intel Virtualization Technology”将其设置成Enable即可(我开发机最终放弃设置这个,进入BIOS不知道有什么特殊限制,问了8000也没整出什么来,放弃这一步没关系)
       此时运行安卓工程报错:


       java.lang.UnsatisfiedLinkError,这个抛错问题纠结了很久!
        原因其实就是因为安卓工程还没成功编译出来,找不到system library,System.loadLibrary(libName);加载不到就会抛出异常。

开始编译安卓工程

       卡这里半天编译不出安卓版,知道是ndk版本的问题,但是不知道怎么整,到底用哪个?
       报错前用的ndk是android-ndk-r9d-windows-x86_64 !
       最后来又下了个android-ndk-r13-windows-x86_64的,但是又遇到:

 
       出现上面问题并不是我没配jdk,后来我重新改了下系统变量抽出JAVA_HOME,最后再编译了一次:


       到这里,终于编出来安卓包了!被掠了N次。
       安装apk到手机运行后截图:

在cocos的命令里敲太麻烦,我们可以用批处理文件点击来进行编译:


保存为.bat文件,放到项目同级目录即可!

Why not use avd?


模拟器会报错!!!看下面一段解释:
         The core issue is OpenGL support. Beginning at 2.2, Androidsupports OpenGL ES 2.0, and beginning at 4.0.3, Android emulators supportOpenGL ES 2.0. Code that uses OpenGL ES 2.0 will not work on emulators before4.0.3.
          安卓模拟器的OpenGL支持问题,所以先真机调试吧。

 好,下面准备加3D模型来做测试
        晕!开门就遇到问题:
        新建的工程都好的,编译好的安卓工程再次打开eclipse后ide报错!如下:


        网上了解了一下,当你链接一个文件进入到你的工程时是通过proj.Android文件夹中的cproject文件实现的,这样Eclipse Project explorer 试着链接到你的项目的一个文件夹时发生连接错误。因为这个文件有两个部分,而在编辑c++包括路径在eclipse中只有其中一个修改。这种不一致导致cdt崩溃。
实际上只能有一个< CConfiguration >,解决方法是删除第二个,它从85行开始。之后,可以编辑c++在eclipse中,不会发生崩溃。
        我们也可以在eclipse里面直接用ndk来build,并直接连真机进行调试,这样最方便。
        新建,按照下面步骤即可:


     Specify Resources点开选择项目里的jni目录即可。


     ok,准备好了。
     Clean一下我的工程即可进行编译:


     调试运行,选连上真机选中即可!
      3d模型死活不显示,最后发现时3d模型的全局zorder的问题,一定要设置3d模型的zorder大于2d layer的zorder才行!

测试效果图:
      100个3D模型:


50个3D模型:


20个3D模型:


       对于多人同屏的ARPG手游压力较大,但对模型较少的pvp、pve支持应该还可以。
      以上仅仅是3D相关皮毛,还有更多的知识点值得我们去探索学

题外知识了解
Cocos3d
       Cocos3D is a sophisticated,yet intuitive and easy-to-use, 3D application development framework for the iOS platform. With Cocos3D, you can build sophisticated, dynamic 3D games andapplications using Objective-C.
Cocos3d是cocos2d的扩展集,从结构上看,与cocos2d 并无太大的差别,主要的是他扩展了几个重要的类,如CC3Node、CC3Layer、CC3World等等。
       he Cocos3D framework works with Cocos2D. Before installing Cocos3D, you must download and install Cocos2D.
Note: Cocos3D2.0 is not compatible with Cocos2D3.3 and above, as substantial changes tointegration design were made in Cocos2D 3.3. Development of Cocos3D 3.0 is underway, which will provide exciting new features, andcompatibility with future versions of Cocos2D. Cocos3D 3.0 will not retain compatibility with versions of Cocos2Dearlier than Cocos2D 3.3, and will notsupport OpenGLES 1.1.
       Cocos3d 2.0不兼容cocos2d 3.3+!!
       Cocos3d具体安装与使用,详细介绍:
       https://github.com/cocos3d/cocos3d
       Cocos3d地址:
       http://cocos3d.org/
       cocos2d地址:http://cocos2d.spritebuilder.com/download

学习链接:
       官方网站:http://www.cocos2d-x.org/、http://cocos3d.org/
       开源:https://github.com/cocos2d/cocos2d-x
       红孩儿教程使用Cocos2d-x 开发3D游戏:http://edu.csdn.net/course/detail/1330
       模型转换工程:https://github.com/libgdx/fbx-conv
       Cocos引擎对3d的支持情况:http://www.cocoachina.com/bbs/read.php?tid=280395
       Cocos2d、cocos3d扩展类差异:http://blog.csdn.net/toss156/article/details/7170729

















如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

0个评论