cocos2d-x 有关Node

来源:互联网 发布:北京科瑞明软件招聘 编辑:程序博客网 时间:2024/04/30 18:26

Node与Node层级架构

树形结构
这里写图片描述

Node中的重要操作

  • 创建节点 Node* childNode=Node::create() (create静态函数)。
  • 增加新的子节点。node->addChild(childNode,0,123)。
    virtual void addChild(Node * child)     virtual void addChild(Node * child,int  localZOrder)    virtual void addChild(Node * child,int  localZOrder,int tag )   
  • 查找子节点。node->getChildByTag(123)。
  • node->removeChildByTag(123,true)删除子节点,并停止所有该节点上的一切动作。
  • node->removeChild(childNode) 通过Node指针删除节点。
  • node->removeAllChildrenWithCleanup(true) 删除所有子节点,并停止这些子节点上的一切动作。
  • node->removeFromParentAndCleanup(true) 从父Node中删除节点,并停止所有节点上的一切动作。

Node中重要的属性

position与anchorPoint(锚点)

锚点的取值范围一般是0~1
锚点是
position点x坐标到矩形左边线的距离,与矩形x轴方向上的边长的比例;
position点y坐标到矩形下边线的距离,与矩形y轴方向上的边长的比例。

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

游戏循环与调度

每一个游戏程序都有一个循环在不断运行,它是由导演对象来管理和维护。如果需要场景中的精灵运动起来,我们可以在游戏循环中使用定时器(Scheduler)对精灵等对象的运行进行调度。因为Node类封装了Scheduler类,所以我们也可以直接使用Node中调用函数。

Node中调用函数主要有:

  • void scheduleUpdate(void) 。每个Node对象只要调用该函数,那么这个Node对象就会定时地每帧回调用一次自己的update(float dt)函数。(dt代表时间间隔)。
  • void schedule(SEL_SCHEDULE selector,float interval)。与scheduleUpdate函数功能一样,不同的是我们可以指定回调函数(通过selector指定),也可以更改需要指定回调时间间隔。
  • void unscheduleUpdate(void )。停止update(float dt)函数调度。
  • void unschedule(SEL_SCHEDULE selector)。也可以指定具体函数停止调度。
  • void unscheduleAllSelectors(void)。可以停止所有调度。
0 0
原创粉丝点击