Cocos2dx <基础> 核心概念 (2)

<Node的常用方法>

a. 设置Node节点的Z轴坐标

    virtual void setZOrder(int localZOrder);  

b. 设置Node节点的缩放   

    void setScale(float scale);

    注意:  游戏中对图形的缩放,会将图形的质量发生改变。宁缩小,也不要放大。(最好游戏中对于同一个图片的大小不一样,使用PS做出多张不同大小的图片)

    缩放可以做动态的图片,放大或者缩小。(游戏专题中有一个例子)

c. 设置Node节点的锚点

    setAnchorPoint(Vec2 point);

    锚点默认为(0.5,0.5);  Node节点的位置和旋转都是相对于锚点来说的。

d. 获得Node节点的大小

     virtual const Size& getContentSize() const;

e. 设置Node节点是否可见

    virtual void setVisible(bool visible);

f.  设置Node节点的旋转

    virtual void setRotation(float rotation);

g. 当前节点中添加子节点

    virtual void addChild(Node * child);

h. 当前节点中添加子节点和设置子节点在当前节点的索引

    virtual void addChild(Node * child, int tag);

i.  获取当前节点的子节点根据索引

    inline T getChildByTag(int tag) const 

j.  判断当前节点是否显示

    virtual bool isRunning() const;

k. 获得当前节点矩形包围框

     virtual Rect getBoundingBox() const;


-------动作:

a.  执行动作并且返回执行的动作

      virtual Action* runAction(Action* action);

b.  停止所有的动作并且从当前节点的动作列表中将所有动作删除

      void stopAllActions();

c.   停止动作并且从当前节点的动作列表中将动作删除

      void stopAction(Action* action);

d.  根据动作列表中的索引停止动作并且从当前节点的动作列表中将动作删除

      void stopActionByTag(int tag);

e.  根据动作列表中的索引获得该动作

      Action* getActionByTag(int tag);


-------onEnter:

注意: 调用下面的4个函数时,首先调用父类的这4个函数,完成一些标准化工作。

a. onEnter():-----> 当前节点创建,但是还没有显示(创建子节点)

b. onEnterTransitionDidFinsh():-----> 当前节点和子节点被显示(onEnter结束)后调用

c. onExit():----> 当前节点从屏幕中删除的时候调用(场景切换的时候)

d. onExitTransitionDidStart():----> 在onExit()之前

顺序关系: 发生场景切换的时候:

onEnter()--->onEnterTransitionDidFinsh()---->onExitTransitionDidStart()---->onExit()--->当前节点的析构函数

问题:  无法进入onEnterTransitionDidFinsh()函数????


-------REMOVES:

a.  将当前节点从父节点中完全删除,引用计数减一

     virtual void removeFromParent();

b.  将当前节点从父节点中删除,true: 引用计数减一;false: 引用计数不减一

     virtual void removeFromParentAndCleanup(bool cleanup);

c.  将当前节点从父节点钟删除,true: 引用计数减一;false: 引用计数不减一

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

d.  通过索引将当前节点从父节点中删除,true: 引用计数减一;false: 引用计数不减一

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

e.  通过名字将当前节点从父节点中删除,true: 引用计数减一;false: 引用计数不减一

      virtual void removeChildByName(const std::string &name, bool cleanup = true);

f.   删除当前节点中的所有子节点  (onExit()和析构函数中不必调用),引用计数减一

     virtual void removeAllChildren();

g.  删除当前节点中的所有子节点  (onExit()和析构函数中不必调用),,true: 引用计数减一;false: 引用计数不减一

     virtual void removeAllChildrenWithCleanup(bool cleanup);

    

猜你喜欢

转载自blog.csdn.net/wue1206/article/details/80155344