国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

cocos2dx camera lua的設(shè)置

2019-11-09 15:15:19
字體:
供稿:網(wǎng)友

前言: 在搞一個cocos2dx 戰(zhàn)斗運用到3d的項目。在游戲rootNode里面添加2個相機。用來展現(xiàn)map類和fight場景類的顯示。這樣子整個游戲就有3個相機了。一個是default的默認相機,相機深度為1。map類定義了相機深度為-2。fight場景類定義相機深度為-1。

cocos2dx的camera有幾個相機模式,默認的,正交的,透視的可以參考這些文章的使用。

http://blog.csdn.net/fox64194167/article/details/42811939?ref=myread http://blog.csdn.net/mingzznet/article/details/42003427 http://www.cnblogs.com/manshuoquan/p/5347139.html

1,cocos2dx的camera都有一個CameraFlag和CameraDepth(可以理解為相機的名字和相機的拍攝地點)。一,只有camera和其他node在同一個rootNode的時候相機才會作用于其他node。二,只有camera的flag和node的CameraMask相同時候,其他node才會顯示出來。

--根節(jié)點local rootNode = cc.Node:create()--相機1,深度為1camera1 = cc.Camera:create()camera1:setCameraFlag(1)--通過調(diào)用setDepth可以設(shè)置攝像機的繪制順序,越大的深度越繪制的靠上,所以默認攝像機默認是0,其他攝像機默認是1。camera1:setDepth(1)rootNode:addChild(self.camera1)--圖片1顯示在深度為1的相機1上local sPRite1 = cc.Scale9Sprite:create("test.png")rootNode:addChild(sprite1)sprite1:setCameraMask(1) --設(shè)置在名字叫做1的相機上--此時圖片1會顯示在屏幕上--如果sprite1:setCameraMask(2),那么此圖片不會顯示在屏幕上

2,cocos2dx一開始會創(chuàng)建一個默認攝像機default,默認攝像機用于繪制ui,它是最后被繪制的。在做2d和3d混合的項目時候,一般來說需要一個另外的攝像機來繪制3d物體而不是默認攝像機,當深度測試未開啟時,可以調(diào)整攝像機的繪制順序,所有攝像機的繪制順序都是先繪制2d物體和不透明3d物體,然后繪制透明3d物體。

--自定義2個相機camera1:setCameraFlag(1)camera1:setDepth(1)camera1:setCameraFlag(2)camera1:setDepth(2)--分配場景到不同相機上面顯示uiLayer:setCameraMask(0)--默認相機,顯示2duimapLayer:setCameraMask(1)--相機1,顯示map地圖類fightLayer:setCameraMask(2)--相機2,用來顯示戰(zhàn)斗

3,游戲內(nèi)3d場景用的是正交攝像機,置于游戲的最頂層

local visibleSize = cc.Director:getInstance():getVisibleSize()local cameraDistance = 1000local cameraWidth = 750local cameraHeight = -1000local cameraDepth = 1500local camera = cc.Camera:createOrthographic(visibleSize.width, visibleSize.height, 1, cameraDepth*2)camera:setPosition3D(cc.vec3(0,0, cameraDepth))camera:setCameraFlag(3)camera:setDepth(3)rootNode:addChild(camera)

4,相機的cameraFlag在cocos有原生的8個定義

local cameraFlag ={ cc.CameraFlag.DEFAULT, cc.CameraFlag.USER1, cc.CameraFlag.USER2, cc.CameraFlag.USER3, cc.CameraFlag.USER4, cc.CameraFlag.USER5, cc.CameraFlag.USER6, cc.CameraFlag.USER7, cc.CameraFlag.USER8,}

5,說說在使用相機需要注意的

1,注意相機的深度,在不同相機混合的場景中,往往會因為不同相機的深度不同而導(dǎo)致場景ui消失, 此時要調(diào)整需要顯示的node的camera 或者 隱藏其他比之高深度camera的場景2,相機添加進rootNode后,手動去remove此相機會導(dǎo)致游戲閃退(cocos3.12,為啥?)3, 創(chuàng)建node,addchild到rootNode后,新添加的node需要每次調(diào)用setCameraFlag,設(shè)置被作用的攝像機4,camera在使用lookat函數(shù)的時候,必須在node調(diào)用setPostion函數(shù)之后。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 乐都县| 武宣县| 方山县| 敖汉旗| 郧西县| 阆中市| 武定县| 白朗县| 萍乡市| 保亭| 贵港市| 遂昌县| 龙游县| 高台县| 灌云县| 扬中市| 佳木斯市| 盖州市| 瓦房店市| 鹤壁市| 石阡县| 庆云县| 溧水县| 宽甸| 高要市| 芜湖市| 华容县| 巩留县| 湘乡市| 台东县| 象山县| 彭泽县| 阜城县| 呼伦贝尔市| 泰州市| 启东市| 寿宁县| 靖州| 南木林县| 长汀县| 沐川县|