本文適合於初步瞭解cocos2d的童鞋,如果不知道cocos2d是什麼,那麼請先百度,google,或者翻書去~~~
cocos2d 是一個2d 的遊戲引擎,通過它可以很快的構建出一個2d的遊戲來。儘管cocos2d深入人心,並且廣泛使用在iOS 2d遊戲開發中,但是如果要用它來坐一個3d
遊戲,那麼緊緊是cocos2d 就無能為力了,我們需要用cocos3d,一個iOS平台高度提煉的3D應用開發架構。Cocos3d是cocos2d的擴充集,從結構上看,與cocos2d
並無太大的差別,需要注意的是他擴充的幾個重要的類:
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世界。
addContentFromPODResourceFile: & addContentFromPODFile:顧名思義,匯入3D資源檔,此方法比較實用。
getNodeNamed: –返回child的標記的名字。
activeCamera –此方法用處不是特別多,大部分在有多個camera鏡頭的時候,開啟。大多數是情境對話,切換兩個不同的鏡頭。
ambientLight –周圍的燈源,這個有區別與當作child Node添加進去的燈。
CC3Node
3D世界裡,所有的模型,網路攝影機,光線,甚至CC3World都是nodes。CC3Node顯然是萬物之源啦。什麼移動,旋轉,隱藏,等等操作,都是這裡來的。具體的,慢慢參考API文檔吧。
CC3Camera & CC3Light
這兩個是比較特別的,是繼承自CC3TargettingNode,顧名思義,用來跟蹤node移動的。說白了,就是攝相機視角。所以這個也可以旋轉,移動,切換視角。
CCActions
注意,這裡基本跟cocos2d方法一致。可以實現控制著色,陰影,扭曲,旋轉,絕大部分操作。
儘管如此,依然有CC3Transform來實現部分3D世界才有的效果。
Automatic Frustum Culling and Bounding Volumes
3D世界裡,你看到的,只是片面的網路攝影機一角。所以有大量的3D物件,你沒必要去渲染,浪費資源。
所以Frustum Culling就是用來從渲染管道裡,把不在視角之內的物體,去除掉。這是自動滴哦。
還有一個Ocllusion culling,就是這個物體的確在視角裡,但是,它被其他物體擋住了。它也不會被批准通過進入渲染管道。
下面我們來配置cocos3d 的開發環境。
1、最新版的cocos3d-0.6.5的:http://brenwill.com/wp-content/uploads/cocos3d-0.6.5.zip
2、我們選擇比較穩定的cocos2d-iphone-1.0.1版本:http://cocos2d-iphone.googlecode.com/files/cocos2d-iphone-1.0.1.tar.gz
3、下載完cocos2d和cocos3d後,我們需要將他們解壓到同一目錄下面。(這個非常重要,例如都放在案頭上)
4.我們需要先安裝cocos2d。下面我們需要用到 應用程式----->工具 + 生產力----->終端,在終端中通過進入到兩個檔案夾所在的目錄。進入cocos2d-iphone-1.01
輸入 sudo ./install-templates.sh -u -f 完成安裝
5、與安裝cocos2d相似,進入目錄然後輸入sudo ./install-cocos3d.sh -u -f -2 ../
6、安裝完成以後我們就可以在Xcode中看cocos2d 和 cocos3d 的模版了。