Cocos2d-x學習筆記(九)之 攝像機類CCCamera

  全部節點都擁有一個攝像機類CCCamera。只有經過攝像機類,節點纔會被渲染出來。當節點發生縮放旋轉和位置變化的時候,都須要覆蓋CCCamera 類,讓這個節點經過CCCamera 類從新渲染。函數

  注意:CCNode 類裏有些方法能夠實現縮放、旋轉和位置變化,當使用攝像機類實現這些的時候,那些方法就不能同時使用了。使用攝像機類也不能夠同時使用世界座標了。spa

  CCCamera 類的繼承關係以下:rest

  CCCamera -->CCObject-->CCCopying。code

  Cocos2D-x 中的CCCamera 類使用OpenGL 的gluLookAt 函數來設置位置。gluLookAt 函數有三組關於座標的參數,其中「Eye」系列的x、y、z 座標參數是視角的位置,而「Center」系列的x、y、z 座標參數是所視目標的座標位置,「Up」系列的x、y、z 座標參數是攝像機方向的向量座標。關於這三個參數,你能夠理解爲以「Eye」爲起點,沿着「Up」方向,朝「Center」看。對象

  注意:這裏須要說明的是,在三維效果中,使用CCCamera 類是能夠的,可是若是你只須要一些二維特效的話,那麼更推薦跟隨類CCFollow。blog

  主要成員函數:繼承

  init:初始化。get

  restore:重置爲初始位置。it

  locate:使用OpenGL 的gluLookAt 函數來設置。class

  setEyeXYZ:設置視角位置座標。

  getEyeXYZ:得到視角位置座標。

  setCenterXYZ:設置目標位置座標。

  getCenterXYZ:得到目標位置座標。

  setUpXYZ:設置攝像機方向座標。

  getUpXYZ:得到攝像機方向座標。

  

  CCCamera 類能夠實現節點對象的縮放旋轉:

 1 //聲明精靈類對象實例
 2 CCNode *sprite;  3 //聲明攝像機類對象實例
 4 CCCamera *cam;  5 //建立精靈類對象
 6 sprite = CCSprite::createWithSpriteFrameName("sprite.png");  7 // 得到攝像機
 8 cam = sprite->getCamera();  9 // 設置z 軸位置
10 cam->setEyeXYZ(0, 0, 100);
相關文章
相關標籤/搜索