zoukankan      html  css  js  c++  java
  • 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)可以停止调度
  • 相关阅读:
    js中有哪些是循环遍历的方法?
    堆内存和栈内存
    Html5和Css3
    PyCharm IDE 的使用
    python基础语法
    数据挖掘书籍简介
    寄存器-2
    汇编基础
    Std::bind()
    手游页游和端游的服务端框架
  • 原文地址:https://www.cnblogs.com/zsboy/p/3926323.html
Copyright © 2011-2022 走看看