《Cocos2D-x权威指南》——3.6 摄像机类

简介: 本节书摘来自华章计算机《Cocos2D-x权威指南》一书中的第3章,第3.6节,作者:满硕泉著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.6 摄像机类

所有节点都拥有一个摄像机类CCCamera。只有通过摄像机类,节点才会被渲染出来。当节点发生缩放旋转和位置变化的时候,都需要覆盖CCCamera类,让这个节点通过CCCamera类重新渲染。
注意 CCNode类里有些方法可以实现缩放、旋转和位置变化,当使用摄像机类实现这些的时候,那些方法就不能同时使用了。使用摄像机类也不可以同时使用世界坐标了。
CCCamera类的继承关系如图3-32所示。

image


Cocos2D-x中的CCCamera类使用OpenGL的gluLookAt函数来设置位置。gluLookAt函数有三组关于坐标的参数,其中“Eye”系列的x、y、z坐标参数是视角的位置,而“Center”系列的x、y、z坐标参数是所视目标的坐标位置,“Up”系列的x、y、z坐标参数是摄像机方向的向量坐标。关于这三个参数,你可以理解为以“Eye”为起点,沿着“Up”方向,朝“Center”看。以下分别是CCCamera类的成员数据和函数。
注意 这里需要说明的是,在三维效果中,使用CCCamera类是可以的,但是如果你只需要一些二维特效的话,那么更推荐跟随类CCFollow。跟随类CCFollow的相关知识,将在第4章介绍。
3.6.1 CCCamera类的成员数据
CCCamera类的主要保护成员数据,如表3-16所示。
image

3.6.2 CCCamera类的函数
CCCamera类的主要公共函数如表3-17所示。
image

3.6.3 实例:CCCamera类的使用
CCCamera类可以实现节点对象的缩放旋转等,在tests项目的TestNode文件夹下,TestNode.cpp文件中的CameraZoomTest类中就有使用摄像机类的实例,如代码清单3-38所示。
代码清单3-38 使用摄像机类实现缩放的实例

void CameraZoomTest::update(float dt)
{
   CCNode *sprite;
   CCCamera *cam;
   
   m_z += dt * 100;
   
   sprite = getChildByTag(20);
   //获得摄像机
   cam = sprite->getCamera();
   //设置z轴位置
   cam->setEyeXYZ(0, 0, m_z);
   
   sprite = getChildByTag(40);
   cam = sprite->getCamera();
   cam->setEyeXYZ(0, 0, -m_z);   
}

可以通过getCamera函数获得摄像机实例,并通过设置视角的z轴位置来实现缩放效果,运行效果如图3-33所示。
需要再次强调的是,不推荐使用摄像机实现二维特效,本实例只是一个使用的范例。下一节介绍Cocos2D-x中的容器类。

相关文章
|
XML 缓存 数据格式
【Cocos2d-x】Cocos2d-x精灵的性能优化
【Cocos2d-x】Cocos2d-x精灵的性能优化
187 0
|
Android开发 iOS开发
【Cocos2d-x】开发基础-Cocos2d-x坐标系
【Cocos2d-x】开发基础-Cocos2d-x坐标系
121 0
|
缓存 JavaScript 前端开发
《Cocos2D-x权威指南》——3.5 精灵类
本节书摘来自华章计算机《Cocos2D-x权威指南》一书中的第3章,第3.5节,作者:满硕泉著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1072 0
|
存储 缓存 JavaScript
《Cocos2D权威指南》——3.5 CCTexture纹理类
本节书摘来自华章计算机《Cocos2D权威指南》一书中的第3章,第3.5节,作者:王寒,屈光辉,周雪彬著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1342 0
|
JavaScript
《Cocos2D权威指南》——2.4 碰撞检测
本节书摘来自华章计算机《Cocos2D权威指南》一书中的第2章,第2.4节,作者:王寒,屈光辉,周雪彬著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1091 0
|
JavaScript
《Cocos2D权威指南》——2.5 游戏音效
本节书摘来自华章计算机《Cocos2D权威指南》一书中的第2章,第2.5节,作者:王寒,屈光辉,周雪彬著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
878 0
《Cocos2D权威指南》——第3章 3.0 Cocos2D核心类
本节书摘来自华章计算机《Cocos2D权威指南》一书中的第3章,第3.0节,作者:王寒,屈光辉,周雪彬著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1016 0
|
iOS开发 C++
《Cocos2D-x权威指南》——第3章 Cocos2D-x中的核心类
本节书摘来自华章计算机《Cocos2D-x权威指南》一书中的第3章,作者:满硕泉著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
887 0

热门文章

最新文章