iPhone Cocos3D 教程
来源:互联网 发布:什么旅行软件最好 编辑:程序博客网 时间:2024/06/11 10:02
Cocos3d框架是iOS平台高度提炼的3D应用开发框架。
Cocos3d是cocos2d的扩展集,cocos2d深入人心,广泛使用在iOS2d游戏开发中。
因此此文章适用于有一定cocos2d开发基础的开发者。
几个重要的概念介绍:
既然是3D游戏,必然存在X,Y,Z轴,Z代表视图中深浅,即与玩家眼前的距离远近。
重要类介绍:
CC3Layer
CC3Layer是两个最重要的类之一。它实现了CC3World与2D世界的巧妙联系。
CC3Layer属于cocos2d中的CCLayer的比较特殊的一个子类,也正是因此,CC3Layer与cocos2d中的CCLayer可以无缝切换,允许CCLayer(即一个2D平面的总管)的子部件,比如CCNode,controls,label与3D部件互相交互,允许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一样,添加child到3D世界。
addContentFromPODResourc
getNodeNamed:–返回child的标记的名字。
activeCamera–此方法用处不是特别多,大部分在有多个camera镜头的时候,开启。大多数是场景对话,切换两个不同的镜头。
ambientLight–周围的灯源,这个有区别与当作childNode添加进去的灯。
CC3Node
3D世界里,所有的模型,摄像头,光线,甚至CC3World都是nodes。CC3Node显然是万物之源啦。什么移动,旋转,隐藏,等等操作,都是这里来的。具体的,慢慢参考API文档吧。
CC3Camera& CC3Light
这两个是比较特别的,是继承自CC3TargettingNode,顾名思义,用来跟踪node移动的。说白了,就是摄相机视角。所以这个也可以旋转,移动,切换视角。
CCActions
注意,这里基本跟cocos2d方法一致。可以实现控制着色,阴影,扭曲,旋转,绝大部分操作。
尽管如此,依然有CC3Transform来实现部分3D世界才有的效果。
Automatic Frustum Cullingand Bounding Volumes
3D世界里,你看到的,只是片面的摄像头一角。所以有大量的3D物件,你没必要去渲染,浪费资源。
所以FrustumCulling就是用来从渲染管道里,把不在视角之内的物体,去除掉。这是自动滴哦。
还有一个Ocllusionculling,就是这个物体的确在视角里,但是,它被其他物体挡住了。它也不会被批准通过进入渲染管道。
Blah…blah…blah….以上讲了省内存,渲染顺序,等等。
总之,他自动省事儿。你啥都不需要担心。
以上都是概念。
安装就自行看cocos3d的README吧,里面写好了,要先安装cocos2d模版,3D是覆盖到原目录的哦。
New一个新的cocos3d的project,自己慢慢摸索吧。
- iPhone Cocos3D 教程
- iPhone Cocos3D 简介说明
- cocos3D
- Cocos3D初步
- Cocos3d初探
- 【Cocos3d 入门教程之---配置cocos3d环境】
- 【Cocos3d 入门教程之---配置cocos3d环境】
- 3 - IOS之cocos3d - 1 - 安装cocos3d
- cocos3d的安装
- ios cocos2d cocos3d 常见问题
- cocos3d Programming Guide
- 冷眼旁观Cocos3D发布
- cocos3D 初体验
- Cocos3d-x 第一版发布
- iPhone OpenGL ES教程
- iphone 初学者教程
- iphone openGLES强力教程
- iphone UI 开发教程
- android端获取网络json格式动态生成二维数组
- hibernate 使用 问题解决 (陆续添加ing)
- 播放系统声音&震动&系统声音对照表
- POJUbiquitous Religions(非常棒的并查集入门题目)
- linux开机启动脚本的顺序
- iPhone Cocos3D 教程
- 微软必应的差异化探索:一条不得不选择的路
- Mysql 配置参数 Innodb
- sscanf的用法
- 什么是超文本?
- shell 脚本学习之判断条件
- MFC原创教程:6.0 Dialog 对话框
- 数据库设计三大范式应用实例剖析
- 将char*转化为string方法