概述
所有节点都拥有一个摄像机类CCCamera。只有通过摄像机类,节点才会被渲染出来。当节点发生缩放旋转和位置变化的时候,都需要覆盖CCCamera类,让这个节点通过CCCamera类重新渲染。
注意:CCNode类里有些方法可以实现缩放、旋转和位置变化,当使用摄像机类实现这些的时候,那些方法就不能同时使用了。使用摄像机类也不可以同时使用世界坐标了。
Cocos2D-X中的CCCamera类使用OpenGL的gluLookAt函数来设置位置。gluLookAt函数有三组关于坐标的参数,其中
- “Eye”系列的x、y、z坐标参数是视角的位置,
- “Center”系列的x、y、z坐标参数是所视目标的坐标位置,
- “Up”系列的x、y、z坐标参数是摄像机方向的向量坐标。
关于这三个参数,你可以理解为以“Eye”为起点,沿着“Up”方向,朝着“Center”看。
注意:这里需要说明的是,在三维效果中,使用CCCamera类是可以的,但是如果你只需要一些二维特效的话,那么更推荐跟随类CCFollow。