1. 程式人生 > >【cocos2dx中Node類getParent和getChildByTag()】學習體會

【cocos2dx中Node類getParent和getChildByTag()】學習體會

mil 提高 cos cleanup HR -c ldr 12px 而不是

參考http://cn.cocos2d-x.org/doc/cocos2d-x-3.0/d3/d82/classcocos2d_1_1_node.html

當中和child、parent有關的成員函數例如以下:

Children and Parent
virtual void? addChild?(Node?*child)

加入一個子節點到容器內。z-order是0.?很多其它...

virtual void? addChild?(Node?*child, int localZOrder)

加入一個子節點到容器中,參數有一個局部Z軸順序。?很多其它...

virtual void? addChild?(Node?*child, int localZOrder, int tag)

加入一個子節點到容器中,有Z軸順序和一個標記。

?很多其它...


virtual?Node?*? getChildByTag?(int tag)

從容器中得到一個子節點通過它的標記。?很多其它...

virtual?Vector<?Node?* > &? getChildren?()

返回子節點數組。?很多其它...

virtual const?Vector<?Node?* > &?
getChildren?() const

virtual?ssize_t? getChildrenCount?() const

返回子節點的總數?很多其它...

virtual void? setParent?(Node?*parent)

設置父節點Sets the parent node?很多其它...

virtual?Node?*? getParent?()

返回指向父節點的指針。?很多其它...

virtual const?Node?*? getParent?() const

virtual void? removeFromParent?()

從父節點中刪除一個節點。有一個cleanup參數。

假設這個節點是一個孤節點,那麽什麽都不會發生。?很多其它...


virtual void? removeFromParentAndCleanup?(bool?cleanup)

從父節點中刪除一個節點 假設這個節點是一個孤節點。那麽什麽都不會發生。

?很多其它...


virtual void? removeChild?(Node?*child, bool?cleanup=true)

從容器中刪除一個孩子,取決於cleanup參數同一時候會清除全部的活動的動作。?很多其它...

virtual void? removeChildByTag?(int tag, bool?cleanup=true)

從一個容器中刪除一個孩子通過標記值。取決於cleanup參數同一時候會清除全部的活動的動作。?很多其它...

virtual void? removeAllChildren?()

從容器中刪除全部的孩子,with a cleanup。?很多其它...

virtual void? removeAllChildrenWithCleanup?(bool?cleanup)

從容器中刪除全部的孩子, 取決於cleanup參數同一時候會清除全部的活動的動作。?很多其它...

virtual void? reorderChild?(Node?*child, int localZOrder)

對一個孩子又一次排序,設定一個新的z軸的值。?很多其它...

virtual void? sortAllChildren?()

在繪畫之前,排列全部的孩子數組一次,而不是每次加入或者刪除子節點時都排序。 這種方法能夠大量地提高性能。?很多其它...

詳細怎麽用我也在學習中。可是比較實用的就是通過此。你能夠調用節點(Node),一個遊戲中的節點樹隨意一點Node對象都能夠通過此方法獲得,方便遊戲開發。

舉個樣例

比方一個跑酷遊戲scene有三個layer(動畫,背景,分數)當中動畫layer狀態改變了。邏輯上要求還有一個分數layer做出對應改變。通過child和parent方法就能夠非常高速定位到分數layer。



【cocos2dx中Node類getParent和getChildByTag()】學習體會