cocos2d-x 3.0 Node與Node層級結構


節點解釋: 節點是場景圖的基本元素。場景圖的基本元素必須是節點對象或者是節點對象的子類。

其中主要可以看到Layer、MenuItem、Scene、Sprite、TMXTiledMap(解析and渲染TMX地圖)、ParticleSystem(粒子系統基類)等等

Node是這些類的根類

 

節點的基本操作

  • 創建節點
       Node* childNode = Node::Create();
  • 增加新的子節點
       node->addChild(childNode,z深度,tag);
  • 查找子節點
       Node* node=node->getChildByTag(tag)
  • node->removeChildTag(tag,true)刪除子節點,並停止所有該節點上的一切動作
  • node->removeChild(childNode)通過Node指針刪除節點
  • node->removeAllChildrenWithCleanup(true)刪除所有子節點,並停止這些子節點上的一切動作
  • node->removeFromParentAndCleanup(true) 從父Node中刪除節點,並停止所有該節點上的一切動作


Node的重要屬性

  • anchorPoint錨點
    錨點指定了貼圖上和所在節點原點(也就是設置位置的點)
    錨點的默認值是(0.5,0.5),表示的並不是一個像素點,而是一個乘數因子。(0.5,0.5)表示錨點位於貼圖長度乘以0.5和寬度乘以0.5的地方,即貼圖的中心。
    改變錨點的值雖然可能看起來節點的圖像位置發生了改變,但其實並不會改變節點的位置,其實變化的只是貼圖相對於你設置的位置的相對位置,相當於你在移動節點里面的貼圖,而非節點本身。
    position=(5,5),anchorPoin=(0.5,0.5)

    position=(5,5),anchorPoin=(0,0)

    position=(5,5),anchorPoin=(0.66,0.5)

 

   游戲循環和調度
每一個游戲程序都有一個循環來不斷運行,它是由導演對象來管理維護。如果需要場景中的精靈運動起來,我們可以在游戲循環中使用定時器(Schedule)對精靈等對象的運動進行調度,因為Node類封裝了Schedule類,所以我們也可以直接使用Node中調用函數

Node中調用函數主要有

  • void ScheduleUpdate(void)每個Node對象只要調用該函數,那么這個Node對象會定時地每幀回調用一次自己的update(float dt)函數
  • void schedule(SEL_SCHEDULE selector,float interval)與scheduleUpdate函數功能一樣,不同的是我們可以指定回調函數(通過selector指定),也可以更加需要指定回調時間間隔
  • void unscheduleUpdate(void) 停止update(float dt)函數調度
  • void unscheduleAllSelectors(void)可以停止調度


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM