ImageVerifierCode 换一换
格式:DOC , 页数:8 ,大小:156.31KB ,
资源ID:7130753      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-7130753.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(cocos引擎——3D相机使用教程.doc)为本站会员(scg750829)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

cocos引擎——3D相机使用教程.doc

1、cocos 引擎3D 相机使用教程本教程是讲 Cocos2d-x 中相机的使用,在 Cocos2d-x 3.3 版本中加入了相机这个类,这个类在 3D 游戏中是必不可少的,因为 3D 游戏是一个立体的世界,在 3D 游戏中的摄像机就相当于是我们的眼睛,通过它我们可以观察整个的游戏世界。相机相当于人的眼睛,人在用眼睛看物体的时候,可以从理论上的任意位置,以任意的角度观察物体,所以物体的形状会受到相机的位置、旋转角度的影响而影响。上图就是在 3D 游戏中使用相机的原理,当然这是一个透视投影的相机,我们在游戏中的相机就是根据图中的原理实现的。在游戏中一般有两种类型的相机:一种就是上图中介绍的透视相机

2、,它在 3D 游戏中是很常见的。还有一种是正交投影相机,它没有像透视投影一样的近大远小的效果而是在相机内任何位置的物体的大小都是一样的,通常这种类型的相机都用在角色属性面板中显示的角色模型。说完了相机的两种类型,下面我们来看看在Cocos2d-x 中我们是如何来创建相机的:上面的代码就是创建了一个透视投影的相机,下面我来说明下参数的意义:第一个参数是FOV,即视场角(field of view),它可以理解为你的视线 左右能看多宽(以角度计)第二个就是上述所有的宽高比,最后两个是相机的近裁面和远裁面,这个也很好理解,距离相机比近裁面还要近的,比远裁面还要远的,都不会被渲染到。上图是正交相机的原

3、理。上面的代码就是创建了一个正交投影的相机,下面我来说明下参数的意义:第一个参数是相机的宽度,第二个就是相机的高度,最后两个是相机的近裁面和远裁面,这个也很好理解,距离相机比近裁面还要近的,比远裁面还要远的,都不会被渲染到。这个和透视相机是一样的。接下来,我们需要对相机设置一个标记位(FLAG),这样可以让相机与其他的相机区分开来-在一些游戏的应用中,通常不仅仅只有一个相机,如果有多个相机的话,那么我们要标记一个物体,到底是要被哪一个相机所“看到“ ,这时候,我们就需要设置它的 CameraMask 来与相机的 Flag 对应:如果同时存在多个相机,怎么标记某个物体被那些相机看到呢?注意到 C

4、amera 中有个_cameraFlag 属性,为枚举类型,定义如下1234567891011enum class CameraFlagDEFAULT = 1,USER1 = 1 1,USER2 = 1 2,USER3 = 1 3,USER4 = 1 4,USER5 = 1 5,USER6 = 1 6,USER7 = 1 7,12 USER8 = 1 8,;Node 中有个 _cameraMask 的属性,当相机的_cameraFlag & _cameraMask 为 true时,该 Node 可以被 该相机看到。所以在上述相机的创建代码中,camera 的 CameraFlag 设 置为 C

5、ameraFlag:USER1,并且该 layer 的 CameraMask 为 2,则表示该 layer只能被 CameraFlag:USER1 相机看到。如果你设置的精灵的 cameraMask 是 3 的话,它也是能被 cameraFlag 为 CameraFlag:USER1 和 CameraFlag:USER2 的相机看到的。我们还要注意如果你的精灵是在 layer 设置 cameraMask 之后添加的,它是不会被看到的,还需要手动再设置精灵的 cameraMask。不要以为这样就可以了,最后我们还要把相机添加到场景中,不然我们还是看不到效果的,一定要记住呀,下图就是把相机加到场景

6、中的代码:这样一来我们就算是创建好相机啦,这只还是第一部哟,下面我来说下相机在游戏中是如何使用的。一般来说在 3D 游戏中相机有三种使用方式:第一种就是自由相机第二种是第一人称相机第三种是第三人称相机下面我们先来说第一种自由相机,这种类型的相机一般都多用在即时战略类型的游戏中,比如魔兽争霸 3 用的就是自由相机,这类相机可以随着鼠 标的移动而移动,能够看到游戏场景中的任何位置,下图就是自由相机在 Cocos2d-x 中的使用方法:怎么样是不是很简单,我们其实只要在移动函数中把在屏幕移动的距离赋值给相机,让相机跟随移动就可以了,需要注意的是我们在屏幕上上下移动相对于相机是前后移动,所以我们要把在

7、屏幕移动的 y 值赋给 相机的 z,而且方向是反的因 为我们向下滑屏幕相机是向前移动下上滑相机是向后移动。那么大家会问,我们既然是 3D 相机那么 y 轴怎么移动呐?下图就是相机拉近和拉远的实现:第一张图是拉近,第二张图是拉远。这样我们也可以用 Cocos2d-x 来制作魔兽争霸 3 这样的游戏啦。接下来我们来看第二种类型的相机,那就是第一人称的相机,这种相机其实很好理解,它就相当于是我们的眼睛看到的东西,这种相机多用在 FPS 类型的游戏中,像是使命的召唤就是这类相机,那么它能不能在 Cocos2d-x 中实现呐?答案是肯定的,我们来看下图:其实就是把相机的位置绑在你在游戏中控制的角色上就可

8、以啦,我们使用 sprite3d 的移动来代替在屏幕上滑动,也就是说我们在屏幕上滑动不是控制相机而是控制 sprite3d,再把 sprite3d 的移 动赋给相机,大家可能会问 FPS 游戏还可以旋转视角呀?咱们的相机可以实现,下面让我们来看代码:这个是向左旋转。这个是向右旋转。通过这样的设置我们就能实现 FPS 游戏的效果了。最后再来介绍下第三人称的相机,这类的相机多应用在 MMORPG 类型游戏中,这种类型的游戏是我们最最常见的游戏类型,现在大多数的网游都是这样的相机,它其实就是把第一人称的相机的位置设定在我们控制的角色身后一定距离的位置上,以便我们能看清自己操控的游戏角色,在 Coco

9、s2d-x 中的实现和第一人称相机类似,相同的部分我们就不再说明了就是在得到角色位置赋值给相机后再把相机的位置加上个偏移量就可以了,偏移量我们用 offset 表示,如下图 :其他的像移动和旋转和第一人称相机是一样的,我就不在这里赘述了,这样就可以实现第三人称的相机了。好了,今天的教程就先讲到这里,通过这篇教程,我们就可以在 Cocos2d-x 中创建属于我们自己的相机啦,通过创建相机来制作我们自己的 3D 游戏,以上讲的三种相机的实现以及使用方法都是非常简单的入门级介绍,可能大家觉得不太完整,没关系大家可以参考CppTest 中的 Camera Test 这个代码,我的教程就是基于它写的,在 Camera Test 中有详细的代码实现供大家参考,希望大家能过制作出比肩大作的游戏,谢谢!本文检索关键词:游戏引擎,游戏开发引擎,cocos 引擎 html5 游戏开发

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报