convertToNodeSpace和convertToWorldSpace ---實際應用

遊戲中常常會用到一些變換:node

遊戲中武器和角色在一個layer上,爲了效率,會考慮將bullet, effect和 PhysicsParticle分別放到不用的層上,對應的層上使用batchnode來提升效率spa

武器和PhysicsParticleLauncher(粒子發射器)綁定,發射的時候,會向PhysicsParticleLayer的武器相同的位置上生成一個物理粒子特效code

 

會常常用到convertToNodeSpace和convertToWorldSpace轉換座標blog

咱們加三個sprite,r0,r1,r2,遊戲

r0的父節點是layer, 父節點下座標(0,0,100,100)get

r1的父節點是r0,父節點下座標(0,0,100,100)it

r2的父節點是r1,父節點下座標(0,0,100,20)io

 

得到r2的世界座標,兩種方法----第一種方法,蠻好,懂原理,才知道這樣也能獲取世界座標!!! 

 

 1     // 得到r2的世界座標,兩種方法
 2     // 方法1:以r2座標系爲起點,向根節點(世界座標)變換,座標必須爲(0,0)
 3     Point p2world = r2->convertToWorldSpace(Point(0, 0));
 4     
 5     // 方法2:以r1座標系爲起點,向根節點(世界座標)變換,座標爲r2在父節點r1內的座標
 6     p2world = r1->convertToWorldSpace(r2->getPosition());
 7     
 8     // 得到r2在r0座標系中的座標
 9     // convertToNodeSpace要傳入的座標爲世界座標
10     Point pt = r0->convertToNodeSpace(p2world);
相關文章
相關標籤/搜索