【Cocos3d 入门教程之---配置cocos3d环境】

原创 2012年01月02日 11:32:18

 本文适合于初步了解cocos2d的童鞋,如果不知道cocos2d是什么,那么请先百度,google,或者翻书去~~~

          cocos2d 是一个2d 的游戏引擎,通过它可以很快的构建出一个2d的游戏来。尽管cocos2d深入人心,并且广泛使用在iOS 2d游戏开发中,但是如果要用它来坐一个3d 游戏,那么紧紧是cocos2d 就无能为力了,我们需要用cocos3d,一个iOS平台高度提炼的3D应用开发框架。Cocos3dcocos2d的扩展集,从结构上看,与cocos2d 并无太大的差别,需要注意的是他扩展的几个重要的类:

 

CC3Layer 

CC3Layer是两个最重要的类之一。它实现了CC3World2D世界的巧妙联系。

CC3Layer属于cocos2d中的CCLayer的比较特殊的一个子类,也正是因此,CC3Layercocos2d中的CCLayer可以无缝切换,允许CCLayer(即一个2D平面的总管)的子部件,比如CCNode,controls,label3D部件互相交互,允许2D部件在CC3Layer的上方,下方底部,旁边儿共同存在视图中。

 

CC3Layer可以随处放在cocos2d程序中。我说以上部分的目的,大部分是为了3D游戏的2D菜单,2D控制手柄,等部件可以与3D游戏界面共存。这些并不冲突。

 

使用过程中,当你使用CC3Layer的子类,请重载以下方法:

 

initializeControls –这个方法就是你添加2D物体的入口。请在这里添加。CC3Layer开始初始化的时候,会自动触发这个函数,你甭担心代码不会执行到这里。

update: –如果你有标准CCNode在里面,并且通过scheduleUpdate方法来自动刷新物体,那么这个方法便会自动被执行到这里。如果想刷新2D物体,传值,请重载此方法实现。

 

 

CC3World

 

明眼人都看出来了,第二个最关键的类,便是它。

所有3D对象的渲染,创造,委托,位置等等都在这里处理。

 

同样CC3World也有这两个函数需要重载实现。

 

initializeWorld –这里3D模型开始初始化,植入的代码。可以直接用函数,类对象来生成,也可以直接导入POD文件。CC3World就像树一样,可以在上面放满child,即所有的CC3Node想添加进去,直接调用addChild:method

update: –这个函数,也差不多啦。大致就是更新移动3D对象位置,处理物体更新。

 

 

以下非必须重载的方法,但是也非常常用:

 

addChild: –cocos2d一样,添加child3D世界。

addContentFromPODResourceFile: & addContentFromPODFile:顾名思义,导入3D资源文件,此方法比较实用。

getNodeNamed: –返回child的标记的名字。

activeCamera –此方法用处不是特别多,大部分在有多个camera镜头的时候,开启。大多数是场景对话,切换两个不同的镜头。

ambientLight –周围的灯源,这个有区别与当作child Node添加进去的灯。

 

 

CC3Node

 

3D世界里,所有的模型,摄像头,光线,甚至CC3World都是nodesCC3Node显然是万物之源啦。什么移动,旋转,隐藏,等等操作,都是这里来的。具体的,慢慢参考API文档吧。

 

CC3Camera & CC3Light

 

这两个是比较特别的,是继承自CC3TargettingNode,顾名思义,用来跟踪node移动的。说白了,就是摄相机视角。所以这个也可以旋转,移动,切换视角。

 

CCActions

 

注意,这里基本跟cocos2d方法一致。可以实现控制着色,阴影,扭曲,旋转,绝大部分操作。

尽管如此,依然有CC3Transform来实现部分3D世界才有的效果。

 

 

Automatic Frustum Culling and Bounding Volumes

 

3D世界里,你看到的,只是片面的摄像头一角。所以有大量的3D物件,你没必要去渲染,浪费资源。

所以Frustum Culling就是用来从渲染管道里,把不在视角之内的物体,去除掉。这是自动滴哦。

还有一个Ocllusion culling,就是这个物体的确在视角里,但是,它被其他物体挡住了。它也不会被批准通过进入渲染管道。

 

下面我们来配置cocos3d 的开发环境。

 

1、最新版的cocos3d-0.6.5的下载地址:http://brenwill.com/wp-content/uploads/cocos3d-0.6.5.zip

2、我们选择比较稳定的cocos2d-iphone-1.0.1版本:http://cocos2d-iphone.googlecode.com/files/cocos2d-iphone-1.0.1.tar.gz

3、下载完cocos2d和cocos3d后,我们需要将他们解压到同一目录下面。(这个非常重要,例如都放在桌面上)

4.我们需要先安装cocos2d。下面我们需要用到 应用程序----->实用工具----->终端,在终端中通过进入到两个文件夹所在的目录。进入cocos2d-iphone-1.01

 输入 sudo  ./install-templates.sh -u -f      完成安装

 

5、与安装cocos2d相似,进入目录然后输入sudo ./install-cocos3d.sh -u -f -2 ../

6、安装完成以后我们就可以在Xcode中看cocos2d 和 cocos3d 的模版了。

 

相关文章推荐

Cocos2d-x 的3D游戏制作官方教程(中文翻译)

Cocos2d-X 从版本3开始,已经将3D一些特性添加到了Cocos2d-x里面。因为3D游戏是一个巨大的市场,所以,为了方便您进行3D游戏的开发,Cocos2d-x向您提供了所有你开发3D游戏时所...
  • cyh24
  • cyh24
  • 2015年05月13日 23:02
  • 5235

Cocos2d-x中的3D功能

Cocos2d-x中的3D功能 标签: cocos2d-x3D 2015-03-01 14:42 1170人阅读 评论(0) 收藏 举报  分类: cocos(14) ...

Cocos3d-x 第一版发布

Cocos3d-x第一版正式发布,Cocos3d-x基于cocos2d-x 2.x 编写。

怎样看待越来越多cocos2dx程序员转unity3d,unity是否是大势所趋?

1.先说说为什么cocos2d-x之前那么火: a.开源:每个CTO都认为开源可以更好的掌控引擎,万一引擎坑了可以马上改,包的大小比较容易控制,跟平台语言相互调用也方便。2.x时期,坑是一点点填得差...

Cocos 3D功能初探学习笔记(1)---摄像机

本篇首先介绍摄像机,其实2D时cocos引擎就有摄像机这个概念,每个节点都拥有一个摄像机类,当时的摄像机类的使用实例就是实现节点对象的缩放旋转,因为节点本身就自带这些功能,所以摄像机使用的场合并不多,...

cocos2dx 3D游戏制作参考

(以下内容依据Cocos秋季峰会演讲速记稿整理) 主持人王哲: 前面几个演讲人展示了不同的技术解决方案。 第一种是《三国之刃》用Flash完成所有动画、UI制作,然后用JSFL开发一...

cocos3d环境搭建(自己留用)

下载     下载cocos2d-iphone-1.0.1.tar.gz     [下载cocos3d 0.6.5] .安装    将cocos2d和cocos3d解压到“文档”文...

cocos2d-x颜色混合模式完成光照效果

使用Cocosd-x3.2的颜色混合功能和裁剪功能完成光照效果,简单易用,效果图如下: 代码://底图,光照图(一般是有透明度的白色图) 光移动的时间,循环次数 Node * HelloWorl...

Cocos 3D功能初探学习笔记(3)---光照

3D游戏中光照对于游戏效果占有举足轻重的作用,也是与2D游戏的重要区别。cocos引擎也提供了完善的光效效果支持。 光照就是光源照到物体上的效果,cocos引擎支持四种光源,继承自Node类,也就是说...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Cocos3d 入门教程之---配置cocos3d环境】
举报原因:
原因补充:

(最多只允许输入30个字)